Как получить часть URL-адреса и использовать его внутри класса формы - PullRequest
0 голосов
/ 03 июня 2019

Моя цель и моя трудность - взять целую часть моего URL, а затем использовать ее в атрибуте forward класса ModelChoiceField моей формы, который реализует автозаполнение.

Другими словами, в моей форме у меня есть поле warehouse_product, в которое я хочу загрузить только те продукты, которые принадлежат конкретному складу, определенному по его идентификатору, который является целой частью моего URL.

мой URL

    url(r'^warehouse/load/(?P<pk>\d+)/$', views.WarehouseLoadView.as_view(), name='warehouse_load'),

например: http://example.com:9005/warehouse/load/12/

моя форма

class WarehouseHasProductForm(ModelForm):

        warehouse=...
        warehouse_product = ModelChoiceField(required=True,queryset=Product.objects.filter(wholesale_status=True),widget=autocomplete.ModelSelect2(url='wholesale-autocomplete',forward=['warehouse']))

        class Meta:
            model=Warehouse_Has_Products
            fields=['warehouse_product','quantity'] 


        def __init__(self, *args, **kwargs):
            super(WarehouseHasProductForm, self).__init__(*args, **kwargs)

            self.fields['warehouse_product'].label = " Επιλέξτε Προϊόν"
            self.fields['quantity'].label = " Επιλέξτε Αριθμό Τεμαχίων"


        def clean_quantity(self):
            quantity = self.cleaned_data['quantity']

            if quantity==0:
                raise ValidationError('Συμπλήρωσε αριθμό τεμαχίων διάφορο του 0')
            return quantity

моя модель

class Warehouse_Has_Products(models.Model):
    warehouse=models.ForeignKey(Warehouse, null=True)
    warehouse_product=models.ForeignKey(Product,null=True)
    quantity=models.IntegerField("Τεμάχια", default=1)

Как можно взять 12 внутри моего класса WarehouseHasProductForm, чтобы передать его в поле склада?

Есть идеи или другие способы?

...