Извлеките автоматически заполненные данные из модели ForeignKey и используйте в форме

#python #django #django-models #django-views #django-forms

Вопрос:

У меня есть одна проблема в Django:

Ниже приведены мои коды, В create_support я создал форму для отправки билета, я хочу, чтобы профиль автоматически заполнялся после входа пользователя и не отображался в раскрывающемся списке, я смог удалить его из раскрывающегося списка, добавив исключение в 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']