Отправить форму с помощью Django в функции view и связать ее с request.user
Мне нужно было написать функциональное представление, в котором я сделал некоторый запрос и форму. Моя проблема в том, что я не могу понять, почему форма не может быть связана с request.user
.
views.py
def kapcsolodasok(request):
profile = Profile.objects.get(user=request.user)
related_users = Profile.objects.filter(projekt=profile.projekt)
context = {
'related_users': related_users,
'profile': profile,
}
if request.method == 'POST':
kap_bar_01 = request.POST.get('kap_bar_01')
kap_bar_02 = request.POST.get('kap_bar_02')
kap_bar_03 = request.POST.get('kap_bar_03')
kap_bar_04 = request.POST.get('kap_bar_04')
kap_bar_05 = request.POST.get('kap_bar_05')
kapcsolodasok = Kapcsolodasok(kap_bar_01=kap_bar_01, kap_bar_02=kap_bar_02, kap_bar_03=kap_bar_03, kap_bar_04=kap_bar_04, kap_bar_05=kap_bar_05)
kapcsolodasok.save()
def form_valid(self, form):
form.instance.user_name = self.request.user
return super().form_valid(form)
return render(request, 'stressz/kapcsolodasok.html', context)
models.py
class Kapcsolodasok(models.Model):
def __str__(self):
return str(self.user_name)
user_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
kap_bar_01 = models.TextField(max_length=200)
kap_bar_02 = models.TextField(max_length=200)
kap_bar_03 = models.TextField(max_length=200)
kap_bar_04 = models.TextField(max_length=200)
kap_bar_05 = models.TextField(max_length=200)
def get_absolute_url(self):
return "/mpa/siker"
class Projekt(models.Model):
def __str__(self):
return str(self.projekt)
projekt = models.TextField(max_length=150)
date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
class Profile(models.Model):
def __str__(self):
return str(self.user)
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
projekt = models.ForeignKey(Projekt, on_delete=models.CASCADE, default=3)
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
forms.py
class KapcsolodasokForm(forms.ModelForm):
class Meta:
model = Kapcsolodasok
fields = '__all__'
Я думаю, что html не нужен ей. Что я делаю не так? В CreateView этот метод работает нормально