Получение автозаполняемых данных из модели ForeignKey и использование их в форме
Я столкнулся с одной проблемой в Django:
Ниже приведены мои коды, В create_support я создал форму, для отправки тикета, я хочу, чтобы профиль автоматически заполнялся после входа пользователя и не отображался в выпадающем списке, я смог удалить его из выпадающего списка, добавив exclude в forms.py, но после отправки формы профиль все еще пустой, как это решить?
Как получить профиль зарегистрированного пользователя во время отправки заявки в службу поддержки.
models.py
class Support(models.Model):
profiles = models.ForeignKey(Profile, null=True, on_delete=models.SET_NULL)
name = models.CharField(max_length=50)
email = models.EmailField(null=True)
subject = models.CharField(max_length=255, null=True)
comments = models.TextField(null=True, blank=True)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
email = models.CharField(max_length=200)
views.py
def support(request):
support = request.user.profile.support_set.all()
context = {
'support': support
}
return render(request, 'support.html', context)
def createsupport(request):
support = request.user.profile.support
form = SupportForm(instance=support)
if request.method == 'POST':
form = SupportForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Your Support Query has reached us, will get back to you shortly. ')
return redirect('blog:articles')
context = {
'form': form
}
return render(request, 'create_support.html', context)
create_supportsupport.html
<div class="col-md-9">
<div class="card card-body">
<h5>Create New Ticket:</h5>
<form method="POST" action="" enctype="multipart/form-data">
{% csrf_token %}
<table border="0">
{{ form.as_table }}
</table>
<input class="btn btn-primary" type="submit" name="submit">
</form>
</div>
</div>
{% endblock %}
forms.py
class ProfileForm(ModelForm):
class Meta:
model = Profile
fields = '__all__'
class SupportForm(ModelForm):
class Meta:
model = Support
fields = '__all__'
exclude = ['profiles']