Позже я создал столбец отзывов в модели UserProfile и создал форму для него только для зарегистрированных пользователей. Кроме того, я создал модель проблемы позже. При нажатии на кнопку «Отправить» выдает вышеуказанную ошибку. Запись обратной связи не сохраняется в записи для ее имени пользователя, вместо этого она создает новую запись с первичным ключом.
models.py
Roles = (
('sales', 'SALES'),
('operations', 'OPERATIONS'),
('cashier', 'CASHIER'),
('frontdesk', 'FRONTDESK'),
('client', 'CLIENT'),
)
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE, default=None, null=True)
role = models.CharField(max_length=50, choices=Roles, default='client')
feedback = models.TextField(default=None, null=True)
def __str__(self):
return self.user.username
class Issue(models.Model):
Issues= (
('Centre', 'Issue about Centre'),
('Appointment', 'Issue about Appointment'),
('Payment', 'Issue about Payment'),
('Others', 'Others'),
)
Issue = models.CharField(max_length=50, choices=Issues, default=None)
Description = models.TextField()
username = models.ForeignKey(User, on_delete = models.CASCADE)
def __str__(self):
return self.username.username
forms.py (связанные):
class UserProfileInfoForm(forms.ModelForm):
class Meta():
model = UserProfile
fields = ('role',)
class FeedbackForm(forms.ModelForm):
class Meta():
model = UserProfile
fields = ('feedback',)
class IssueForm(forms.ModelForm):
class Meta():
model = Issue
fields = '__all__'
views.py (для вопросов и отзывов):
@login_required
def feedback(request):
if request.method =='POST':
form = FeedbackForm(request.POST)
if form.is_valid():
form.save(request.POST)
else:
form = FeedbackForm()
return render(request, 'NewApp/feedback.html',{'form':form})
@login_required
def issues(request):
if request.method == 'POST':
form = IssueForm(request.POST)
if form.is_valid():
form = IssueForm.save(request)
else:
form = IssueForm()
return render(request, 'NewApp/issues.html',{'form':form})