表单未保存在数据库 Django 中

时间:2021-05-09 13:50:39

标签: python django django-forms

我为帖子创建了一个form。表单加载,当我输入所有值并尝试提交表单时,它会刷新,但 database更新

这是我的发布模型

class Post(models.Model):
    no_people = models.IntegerField()
    no_days = models.IntegerField()
    tour_date = models.CharField(max_length=200, blank=True)
    Gender_types = (
        ('M', 'Male'),
        ('F', 'Female'),
        ('O', 'Others'),
    )
    Gender_prefer = models.CharField(max_length=1, choices=Gender_types)
    location = models.CharField(max_length=200, blank=True)
    pic_location = models.ImageField(blank=True, upload_to="posts/")
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)
    detail = models.TextField() 
    liked = models.ManyToManyField(Yatru, blank=True, related_name= 'likes')
    author = models.ForeignKey(Yatru, on_delete=models.CASCADE, related_name = 'posts',null=True)

    def __str__(self):
        return str(self.location)

    def no_likes(self):
        return self.liked.all().count()
    
    class Meta:
        ordering = ('-created',)

    def save(self, *args, **kwargs):
        self.location = self.location.upper()
        return super(Post, self).save(*args, **kwargs)

    LIKE_CHOICES = (
    ('Like', 'Like'),
    ('Unlike', 'Unlike'),
    )

这是form.py

from django import forms
from .models import Post

class PostModelForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('no_people','no_days','tour_date', 'Gender_prefer','location','detail')

这是views.py

def post_add(request):
    user = request.user
    profile = Yatru.objects.get(user=user)
    form = PostModelForm(request.POST or None, request.FILES or None, instance=profile)
    
    if request.method == 'POST':
        if form.is_valid():
            newpost=form.save(commit=False)
            newpost.user=request.user
            newpost.save()
    return render(request, 'posts/my_post.html',{'form': form})

这是 HTML 文件:

<form method="POST">
{% csrf_token %}
{{form.as_p}}
<button type='submit'>Submit </button>
</form>

1 个答案:

答案 0 :(得分:0)

您好,请按照说明操作:

  1. 首先在模型表单的字段元组中插入“作者”字段

  2. 在您的 post_add 视图中更改以下行 newpost.author=request.user

相关问题