2015-02-23 22 views
0

团队,我试图为下列字段创建一个新帖子的表单。标题,正文,类别。我需要在登录时使用用户名自动保存作者姓名(这里称为所有者),但尽管我可以使用日期和时间来完成此操作,但我并未与用户协作,请您帮忙吗?请把更详细,你可以SimpleLazyObject的对象不可调用

查看:

def create_post(request): 
    if request.method == 'POST': 
     form = CreatePostForm(request.POST) 

     if form.is_valid(): 
      post = form.save(commit=False) 
      post.datposted = datetime.datetime.now() 
      post.owner = request.user() 
      post.save() 
      return HttpResponseRedirect('/posts/') 
     else: 
      return HttpResponse("Favor. Verifique os campos necessarios") 

    else: 
     form = CreatePostForm() 
     f = {'form' : form} 
     return render(request,'create_post.html',f) 

型号:

class Post(models.Model): 
    title = models.CharField(max_length=100) 
    body = models.TextField() 
    datposted = models.DateTimeField('date posted') 
    category = models.ForeignKey('Category') 
    owner = models.ForeignKey('UserProfile') 

    def __str__(self): 
     return '%s' % self.title 

class Category(models.Model): 
    title = models.CharField(max_length=100) 
    def __str__(self): 
     return self.title 

class UserProfile(models.Model): 

    user = models.OneToOneField(User) 


    website = models.URLField(blank=True) 
    picture = models.ImageField(upload_to='profile_images', null=True) 


    def __unicode__(self): 
     return self.user.username 

class Logout(User): 
    force_logout_date = models.DateTimeField(null=True, blank=True) 
+0

整个错误: 'SimpleLazyObject' 对象不是可调用 请求方法:\t POST 请求URL:\t http://127.0.0.1:8000/newpost/ Django的版本:\t 1.7.4 异常类型:\t类型错误 异常值:\t 'SimpleLazyObject' 对象不是可调用 异常位置:\t C:\用户\文档\ Treinamentos \的Python \项目\ projeto_blog \ blogapp \ views.py我Ñcreate_post,线176 Python的可执行文件:\t C:\ Python27 \ python.exe Python的版本:\t 2.7.9 Python的路径:\t ['C:\\用户\\文献\\ Treinamentos \\的Python \ \ projects \\ projeto_blog', – 2015-02-23 17:23:27

回答

1

你不应该拨打的用户对象。

post.owner = request.user 
+0

我应该如何引用用户然后在数据库上保存这些信息? – 2015-02-23 18:08:21

+0

在Daniel的回答中注意,用户对象没有一对括号作为你发布的代码片段。 – Dirtycoder 2015-02-23 18:14:25

+0

抱歉没有注意到。我做了这样的建议丹尼尔和得到这个: 请求方法:\t POST 请求URL:\t http://127.0.0.1:8000/newpost/ Django的版本:\t 1.7.4 异常类型:\t ValueError异常 异常值:\t 无法分配“>”:“Post.owner”必须是“UserProfile”实例。 异常位置:\t C:\ Python27 \ lib \ site-packages \ django \ db \ models \ fields \ related.py in __set__,line 597 – 2015-02-23 18:23:00