Django: Как связать пользователя с созданным постом, когда пост создается с помощью ModelForm - PullRequest
0 голосов
/ 13 ноября 2018

Я создал обычное приложение для постов Django, которое в основном создает пост и его содержание.Теперь дело в том, что я реализовал форму создания записи в виде формы модели в forms.py. Теперь, если бы это была не форма модели, а просто HTML-форма, у меня был бы пользователь request.POST.get('data') Но теперь, когда я использовал

class PostForm(forms.ModelForm):
class Meta:
    model = Post
    fields = (
        'title',
        'content',
        'image',
    )

Model.py

class Post(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(null=True,blank=True)
    content = models.TextField()
    user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)

Views.py

def create(request):
    form = PostForm(request.POST or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        return HttpResponseRedirect('/home')
    return render(request,'create.html',{'form':form})

Как я могу присоединить пользователя к созданному сообщению

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете просто назначить пользователя экземпляру между двумя функциями сохранения:

instance = form.save(commit=False)
instance.user = request.user
instance.save()
...