Wickkiey
Wickkiey

Reputation: 4632

Django: (1048, "Column 'user_id' cannot be null")

I got error:

IntegrityError at /feeds/upload

I tried to connect the User model and feed model using 'foreign'key method.

Here is my model.py:

 class feed(models.Model):
    user = models.ForeignKey(User,null=True,blank=True)
    feed_text = models.CharField(max_length=2000)
    date = models.DateField()
    upvote = 0
    downvote = 0

    def __str__(self):
        return feed.content

class comments(models.Model):
    feed = models.ForeignKey(feed,null=True,blank=True)

    comment_text = models.CharField(max_length=600)
    user = models.ForeignKey(User)

    def __str__(self):
        return comments.comment_text

In form.py:

from django import forms
from .models import *

class feed_form(forms.ModelForm):
class Meta:
    model = feed
    fields = ('feed_text',  )

In views.py:

def upload(request):
    feed_cont = feed_form(data=request.POST)
    feed_cont.user = User.objects.get(id =1)
    print(feed_cont.user.id)
    feed_cont.upvote = 0
    feed_cont.downvote =0

    feed_cont.save()

    return  render(request,'feeds/feeds.html')

But when I tried to print the uesr.id it works.. I don't know where i made the mistake.. Please help me to resolve this isssue .. Thanks in advance..

Upvotes: 1

Views: 6504

Answers (1)

catavaran
catavaran

Reputation: 45575

You should set attributes not to the form but to the model instance:

form = feed_form(request.POST)
feed_cont = form.save(commit=False)  
feed_cont.user = User.objects.get(id=1)
feed_cont.upvote = 0
feed_cont.downvote = 0
feed_cont.save()

Upvotes: 1

Related Questions