У меня есть две модели следующим образом
class Professor(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
faculty_id = models.IntegerField(primary_key=True)
name = models.CharField(blank=True, max_length=50)
family_name = models.CharField(blank=True, max_length=50)
birth_date = models.DateField(blank=True, null=True)
national_id = models.IntegerField(blank=True, null=True)
....
И
class Journal(models.Model):
professor = models.ForeignKey(Professor, on_delete=models.CASCADE)
title = models.CharField(max_length=1000, null=True)
title_english = models.CharField(max_length=1000, null=True)
magazine_title = models.CharField(max_length=1000, null=True)
magazine_title_english = models.CharField(max_length=1000, null=True)
...
У меня есть представление, в котором перечислены все журналы, принадлежащие профессору:
def journals_update(request):
professor = get_object_or_404(Professor,
user__username=request.user)
context = {"active_tab": "3-1", "active": "made-3",
"journals": Journal.objects.filter(professor=professor)}
return render(request, 'journals.html',
context=context)
Я хочу иметь возможность изменять поля, связанные с различными объектами, отображаемыми в journals.html, и сохранять поля, которые изменяются при публикации пользователем.
Я пробовал что-то вроде следующего:
def post(self, request):
queryset = self.get_queryset()
form = JournalModelForm(request.POST)
if form.is_valid():
data = form.cleaned_data
print(data)
queryset.update(**data)
Но я понял, что queryset.update () обновляет поля с тем же значением.
Как я могу пойти по этому поводу? Я бы очень предпочел это с общими взглядами.