I am trying to build a feedback application for the teachers by the students. I have a proxy User that will the student. But I am not able to assign the user to the feedback model. I am a newbie. Please help. Thanks and regards, Saloni
*models.py:* class User(auth.models.User, auth.models.PermissionsMixin): def __str__(self): return self.username class Teacher(models.Model): teacher_name = models.CharField(blank=False, max_length=100, unique=True, null=False) def __str__(self): return self.teacher_name class Subject(models.Model): subject_name = models.CharField(blank=False, max_length=100, unique=True, null=False) def __str__(self): return self.subject_name class Feedback(models.Model): user = models.ForeignKey(User, related_name = 'feedback', on_delete=models.CASCADE, blank=False, null=False) teacher = models.ForeignKey(Teacher, related_name = 'feedback', on_delete=models.CASCADE, blank=False, null=False) subject = models.ForeignKey(Subject, related_name = 'feedback', on_delete=models.CASCADE, blank=False, null=False) param1 = models.PositiveIntegerField(blank=False, null=False) param2 = models.PositiveIntegerField(blank=False, null=False) param3 = models.PositiveIntegerField(blank=False, null=False) param4 = models.PositiveIntegerField(blank=False, null=False) param5 = models.PositiveIntegerField(blank=False, null=False) param6 = models.PositiveIntegerField(blank=False, null=False) param7 = models.PositiveIntegerField(blank=False, null=False) param8 = models.PositiveIntegerField(blank=False, null=False) param9 = models.PositiveIntegerField(blank=False, null=False) param10 = models.PositiveIntegerField(blank=False, null=False) def get_absolute_url(self): return reverse( "feedback:detail", kwargs={"username": self.user.username, "pk": self.pk}) def __str__(self): return (self.username + "->" + self.teacher) class Meta: ordering = ["teacher"] unique_together = ["user", "teacher", "subject"] *forms.py:* class FeedbackForm(forms.ModelForm): class Meta: fields = ("teacher", "subject", "param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10") model = models.Feedback def __init__(self, *args, **kwargs): user = kwargs.pop("user", None) super().__init__(*args, **kwargs) *CreateView:* class CreateFeedback(LoginRequiredMixin, SelectRelatedMixin, generic.CreateView): form_class = FeedbackForm model = models.Feedback def form_valid(self, form): self.object = form.save(commit=False) self.object.user = self.request.user self.object.save() return super().form_valid(form) *Path in urls.py:* path('by/<username>/new',views.CreateFeedback.as_view(),name='create'), *Error:* ValueError at /feedback/by/feedback/new Cannot assign "<SimpleLazyObject: <User: feedback>>": "Feedback.user" must be a "User" instance. *Repository:* https://github.com/salonikalra/feedback -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAMO5YAoOKgjQjQ0QBu%2Bx_GHSTkEZs2JreGc6NCXqtYLxQHrBBg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.