Итак, у меня есть 2 модели, называемые Биллинг и Организация, как показано ниже. Выставление счетов на сайте администратора работает, как и ожидалось, то есть в поле организации отображаются все перечисленные организации и я могу выбрать одну. Если я реализую модель формы для выставления счетов, она не отображает все организации, из которых я могу выбрать. Как это реализовать? У меня есть общий доступ к файлам forms.py, views.py ниже.
models.py
class Organization(models.Model):
name = models.CharField(max_length=255, unique=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return str(self.name)
class Billing(models.Model):
invoice_name = models.CharField(max_length=50)
organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
product = models.ManyToManyField(Product)
def __str__(self):
return str(self.invoice_name)
views.py
class BillingCreateView(AdminStaffRequiredMixin, SuccessMessageMixin, CreateView):
model = Billing
form_class = forms.BillingCreateForm
template_name = 'dashboard/billing_new.html'
success_message = 'Invoice has been created successfully!'
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
панель инструментов / billing_new. html
<!-- start form -->
<div class="col-lg-12">
<form method="post" action="{% url 'product_create' %}" class="mailform off2" enctype="multipart/form-data">
<div class="row">
{% csrf_token %}
<div class="col-md-6 offset-md-3">
{{ form.invoice_name }}
</div>
<div class="col-md-6 offset-md-3">
{{ form.organization }}
</div>
<div class="col-md-6 offset-md-3">
{{ form.product }}
</div>
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<div class="mfControls col-md-12 offset-md-3 text-left mt-2">
<button type="submit" class="btn white">{% trans "CREATE" %}</button>
</div>
</div>
</form>
</div>
<!-- end form -->
forms.py
class BillingCreateForm(forms.ModelForm):
class Meta:
model = models.Billing
fields = ['invoice_name', 'organization', 'product']
widgets = {
'invoice_name': forms.TextInput(attrs={'type': 'text', 'name': 'name', 'placeholder': 'Invoice Name:'}),
'organization': forms.TextInput(attrs={'type': 'text', 'name': 'name', 'placeholder': 'Company:'}),
'items': forms.TextInput(attrs={'type': 'text', 'name': 'name', 'placeholder': 'Items:'}),
}