显示特定用户django的模型值

时间:2013-02-12 06:24:50

标签: django django-models django-templates django-views

我想显示他输入的用户的数据。这是我的模特

class IgaiaContent(models.Model):
    CONTENT_CHANNELS = (
        ('YouTube','Youtube'),
        ('FaceBook','FaceBook'),
        ('Flickr','Flickr'),
        ('Instagram','Instagram'),
    )
    content_name =          models.CharField(max_length=255, primary_key=True)
    content_type =          models.CharField(max_length=255,null=True)
    content_source =        models.CharField(max_length=255,null=True, choices=CONTENT_CHANNELS)
    content_location =      models.CharField(max_length=255,null=True)
    content_latitude =      models.DecimalField(max_digits=20,decimal_places=2,null=True)
    content_longitude =     models.DecimalField(max_digits=20,decimal_places=2,null=True)
    content_embed_code =    models.TextField(null=True)
    content_description =   models.TextField(null=True)
    content_tags_user  =  models.CharField(max_length=255,null=True)  
    content_time_uploaded = models.DateTimeField(auto_now_add=True)
    content_time_updated =  models.DateField(null=True)

    def __unicode__(self):
        return self.content_name
        return self.content_type
        return self.content_source
        return self.content_location
        return self.content_latitude
        return self.content_longitude
        return self.embed_code
        return self.description
        return self.tags_user 
        return self.time_uploaded
        return self.time_updated



tagging.register(IgaiaContent)

我的观点

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

    c = {}
    c.update(csrf(request))
    return render_to_response('portal/form1.htm',{'form':form},context_instance=RequestContext(request))

我的表单模板:

<form method="post" style="height: 553px; width: 594px">
<div class="style12">

{% csrf_token %}

        </br>{{ form.as_p }}

</div>
</form>

这就是我如何展示我的模型值

employee_info1 = {
    "queryset" : IgaiaContent.objects.all(),
    "template_name" : "portal/emp1.html",
}

urlpatterns = patterns('',


    (r'^view5/',  list_detail.object_list, employee_info1),
)

emp1.html

{% if object_list %}
<table>
<ul>
{% for item in object_list %}
   <li>{{item.content_name}}</li>
   <li>{{item.content_type}}</li>
   <li>{{item.content_source}}</li>
   <li>{{item.content_location}}</li>
   <li>{{item.content_latitude}}</li>
   <li>{{item.content_longitude}}</li>
   <li>{{item.content_embed_code}}</li>
   <li>{{item.content_description}}</li>
   <li>{{item.content_tags_user}}</li>
   <li>{{item.content_time_uploaded}}</li>
   <li>{{item.content_time_updated}}</li></ul>
{% empty %}
   <td colspan="11">No items.</td>
{% endfor %}
</table>
{% endif %}

它没有显示特定的用户值意味着它正在显示我的一切。 谁能告诉我如何显示特定的用户价值/数据?

1 个答案:

答案 0 :(得分:3)

您需要更新模型,使其包含用于存储用户的字段 -

from django.contrib.auth.models import User

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

然后,您需要按照ModelForm所述创建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

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视图中,您可以执行类似 -

的操作
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})