У меня есть модельный курс, который имеет следующий attr:
class Course(models.Model):
user= models.ForeignKey(
User,
on_delete=models.CASCADE,
)
# email= models.EmailField(default=user.email)
courseName= models.CharField(max_length=20, blank=False)
class Meta:
unique_together= ('user','courseName',)
def __str__(self):
return self.courseName
Я создал форму, где я хочу, чтобы пользователь ввел только courseName, и после того, как они опубликуют его, я добавлю запрошенного пользователя в модель, а также.
Это моя форма, которая передается на шаблон через мой ListView
forms.py
class CourseForm(forms.ModelForm):
class Meta:
model= Course
fields = ['courseName']
**Вот мой views.py где я борюсь с **
class CoursesListView(ListView, FormMixin):
model = Course
form_class = CourseForm
template_name = "userApp/courseList.html"
def get_queryset(self):
return Course.objects.filter(user__exact=self.request.user)
def get_context_data(self,*args,**kwargs):
context= super(CoursesListView,self).get_context_data(*args, **kwargs)
context['courseForm'] = self.form_class
return context
def post(self,request, *args, **kwargs):
form = self.form_class(request.POST)
user = User.objects.get(username__exact=self.request.user)
**I want to add the user to my model.user field here**
return self.get(redirect, *args, **kwargs)
def get(self,request, *args, **kwargs):
self.object=None
self.form = self.get_form(self.form_class)
return ListView.get(self, request, *args, **kwargs)
Поэтому в основном мой вопрос заключается в том, как я могу добавить пользователя в мою модель перед вызовом формы.is_valid ().
что-то вроде этого?
Этот ответ был предложен пользователем, который удалил этот ответ. Не получил свой идентификатор пользователя, но кто бы вы ни были Большое спасибо за помощь!!!
Просто используйте форму.сохраните (commit=False) и внесите необходимые изменения.