Form.instance не заполняет поле
У меня есть следующая форма для создания пользователя:
class CreateAccount(UserCreationForm):
class Meta:
model = USER
fields = ['first_name','last_name','username','email','employee_id','is_active','is_staff']
и его вид:
class CreateAccountView(CreateView):
model = USER
form_class = CreateAccount
template_name = 'createaccount.html'
def form_valid(self, form):
form.instance.employee_id = Employee.objects.get(username=self.kwargs.get('username'))
return super().form_valid(form)
def get_success_url(self):
return reverse('People')
Я использовал form.instance, чтобы передать ему объект сотрудника, но это не работает и я получаю 'This field is required. ' ошибка, я использовал его точно так же в других приложениях и он работал нормально, есть ли у кого-нибудь идеи, что здесь может быть по-другому?
def post(self, request, pk):
id = YourModelName.objects.get(id=pk)
form = ModelForm(request.POST, instance = id)
if form.is_valid():
form.save()
return redirect(reverse('templateName'))
def get(self, request, pk, *args, **kwarg,):
id = YourModelName.objects.get(id=pk)
form = QuestionForm(instance = id)
context = {'form':form}
return render(request, 'TemplateName', context)
Сначала вам нужно получить id с данными, а затем опубликовать его или обновить, вот как я это делаю
для тех, кому интересно, я удалил два поля, которые я пытался заполнить, из списка полей моей формы, и это сработало