且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

显示特定用户django的模型值

更新时间:2023-11-27 23:38:40

您需要更新模型,以便它包含一个用于存储用户的字段-

You need to update your model so that it contains a field to store the user -

from django.contrib.auth.models import User

class IgaiaContent(models.Model):
    #...
    user = models.ForeignKey(User)

然后您需要创建一个 ModelForm 此处所述。

Then you need to create a ModelForm as described here.

class IgaiaContentForm(forms.ModelForm):

   def __init__(self, *args, **kwargs):
       self.request = kwargs.pop('request', None)
       return super(MyModelForm, self).__init__(*args, **kwargs)

   def save(self, *args, **kwargs):
       kwargs['commit']=False
       obj = super(MyModelForm, self).save(*args, **kwargs)
       if self.request:
           obj.user = self.request.user
       obj.save()

   class Meta:
        model = IgaiaContent

现在更新视图,以便您使用新的ModelForm

Now update your view so that that you use your new ModelForm

def create_page(request):
    if request.method == 'POST':
            form = IgaiaContentForm(request.POST) 
            if form.is_valid(): 
                    form.save()
                    return HttpResponseRedirect('/thanks/')
    else:
            form = IgaiaContentForm() 
    #...

现在在object_list视图中你做的事-

Now in your object_list view you do something like -

from django.shortcuts import render_to_response

def object_list(request):
    #....
    object_list = IgaiaContent.objects.filter(user=request.user)
    return render_to_response('object_list_template.html', {'object_list': object_list})