我有以下设置。
型号:
class Feedbacks(models.Model):
user_id = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
feedback = models.TextField()
rating = models.IntegerField()
形式:
class FeedbackModelForm(ModelForm):
class Meta:
model = Feedbacks
exclude = ['user_id']
浏览次数:
@login_required
def feedbackPage(request):
username = request.user.id
if request.method == 'POST':
form = FeedbackModelForm(request.POST, initial={'user_id': username})
if form.is_valid():
form.save()
return redirect('feedback_success')
else:
form = FeedbackModelForm()
context = {'form': form}
return render(request, 'feedback.html', context)
Print(username)显示当前已验证的用户ID。
在保存过程中,它不保存user_id字段(它是NULL)。
我需要从已验证用户保存的user_id字段。
1条答案
按热度按时间idv4meu81#
看起来问题是当你在视图函数中创建对象时如何设置用户id。您的代码正在将一个名为'user_id'的表单设置为请求对象中的用户id,但这将不起作用,因为您已经在FeedbackModelForm类中排除了'user_id'。
不要尝试为表单设置初始值,而是尝试直接在对象上设置user_id字段,然后手动保存它。就像这样:
views.py
这应该可以解决这个问题。(至少,我认为它会)