2015-07-04 122 views
-1

我试图创建一个表单,其中注册用户创建并在数据库中插入主键ID,但这不会给我以下错误列'user_id'不能为空'user_id'列不能为空django

这是我的models.py

class posts(models.Model): 
    titulo = models.CharField(max_length=180, unique=True) 
    slug = models.SlugField(max_length=180, editable=False) 
    contenido = models.TextField() 
    categoria = models.ForeignKey(categorias) 

    user = models.ForeignKey(User) 
    tags = models.CharField(max_length=200) 
    creado = models.DateTimeField(auto_now_add=True) 
    modificado = models.DateTimeField(auto_now=True) 

    def save(self, *args, **kwargs): 
     self.slug = slugify(self.titulo) 
     super(posts, self).save(*args, **kwargs) 

    def __str__(self): 
     return self.titulo 

这是我view.py

def addPosts(request): 
    if request.method == "POST": 
      form = addPostForm(request.POST) 
      if form.is_valid(): 
       add = form.save(commit=False) 
       #add.user = User.objects.get(id=request.user) 
       add.save() 
       form.save_m2m() 
       return HttpResponseRedirect('/') 
     else: 
      form = addPostForm() 
     ctx = {'form': form} 
     return render_to_response('posts/add.html', ctx, context_instance=RequestContext(request)) 

这是forms.py

class addPostForm(forms.ModelForm): 
     class Meta: 
      model = posts 
      exclude = {'slug','user', 'creado'} 

解决此问题的一些方法?

+0

欢迎来到StackOverflow。请花几分钟时间阅读并学习如何[提出一个好问题](http://stackoverflow.com/help/how-to-ask)。具体来说,尝试编辑您的问题并添加一些上下文。你想实现什么?你遇到什么问题?我们应该能够理解yopu在阅读代码时所要求的问题。目前,您的问题是:“这是我的模型,这是我的观点,解决方案?” – Antwane

+0

谢谢,请helpme – vdjkelly

回答

1

Request.user返回当前用户对象。无需查询。

add.user = request.user 
在你看来

+0

add.user = User.objects.get(id = request.user)int()参数必须是一个字符串,一个类似字节的对象或一个数字,而不是'SimpleLazyObject' – vdjkelly

+0

说明你做了两次这项工作。道歉,应该第一时间抓到它 – Incognos

+0

感谢两天找到一个简单的解决方案, – vdjkelly

相关问题