1
有一個博客項目。它現在工作正常。會有多個用戶。Django - 登錄用戶的帖子列表
我想列出由現在登錄的用戶創建的帖子。如果'x'用戶登錄,他必須在管理頁面上看到他自己的帖子。
這是什麼正確的方法?
這裏是我的models.py:
class Post(models.Model):
title = models.CharField(max_length = 100)
body = models.TextField()
slug = AutoSlugField(populate_from='title',unique=True)
posted = models.DateField(auto_now_add=True)
isdraft = models.BooleanField(default=False)
def __unicode__(self):
return self.title()
@permalink
def get_absolute_url(self):
return ('view_blog_post',None, {'postslug':self.slug})
class UserProfile(models.Model):
user = models.OneToOneField(User)
def create_user(sender,instance,created,**kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user, sender=User)
和我的views.py(只是管理頁面的一部分):
@login_required(login_url='/panel/')
def adminView(request):
if request.session['loggedin']=="djangoo":
draft_list = Post.objects.filter(isdraft=True).order_by("-posted")
p_draft = Paginator(draft_list,15)
publish_list = Post.objects.filter(isdraft=False).order_by("-posted")
p_publish = Paginator(publish_list,15)
page = request.GET.get('page')
try:
post_d = p_draft.page(page)
post_p = p_publish.page(page)
except PageNotAnInteger:
post_d = p_draft.page(1)
post_p = p_publish.page(1)
except EmptyPage:
post_d = p_draft.page(p_draft.num_pages)
post_p = p_publish.page(p_publish.num_pages)
return render_to_response('admin.html',
{'draft_list':draft_list,'publish_list':publish_list,'post_d':post_d,'post_p':post_p},
context_instance=RequestContext(request))
else:
HttpResponseRedirect('/panel/')
謝謝。
你真棒:) – alix
@drTerminal,你重新激活數據庫嗎?請注意,您必須重置數據庫,因爲「syncdb」不會添加新列。此外,你是否在添加帖子時設置了「所有者」屬性? – Rohan
我修好了。這是關於數據庫錯誤。我重新創建數據庫,現在它工作正常:) – alix