Передача параметра URL в форму Django в качестве атрибута
Здравствуйте, я пытаюсь использовать параметр URL(id) в Django Model Forms в качестве переменной атрибута и получаю ошибку, как показано ниже.
Я не уверен, можно ли передать переменную id, вызывая класс "BidListing(id)" подобным образом.
И получаем его "BidListing(forms.ModelForm, id)" этим способом.
Ошибка
...\forms.py", line 24, in <module>
class BidListing(forms.ModelForm,id):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
PS C:\Users\ycemalunlu\Desktop\commerce>
Models.py
class Bid(models.Model):
listing = models.ForeignKey(Listing, on_delete=models.CASCADE, related_name="listing_bids")
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user_bids")
bid = models.DecimalField(max_digits=22, decimal_places=2)
class Meta:
ordering = ('-bid',)
def __str__(self):
return f"£{self.bid} bid made for {self.listing.title} by {self.user.username}"
Forms.py
class Minval():
def getminv(id):
listing = Listing.objects.get(id=id)
minv = listing.listing_bids.first().bid
return minv
class BidListing(forms.ModelForm,id):
class Meta:
minval = Minval.getminv(id)
model = Bid
fields = ('bid',)
labels = {'bid': '',}
widgets = {'bid': forms.NumberInput(attrs={'min':minval}) }
Views.py
def listing(request, id):
return render(request, "auctions/listing.html", {
"bid_listing": BidListing(id),
})
class BidListing(forms.ModelForm,id):
def __init__(self, *args, **kwargs):
self.id = kwargs.pop("id")
super(BidListing, self).__init__(*args, **kwargs)
// ur logic
и в поле зрения
def listing(request, id):
if request.method == 'POST':
form = BidListing(data=request.POST, id=id)
...
else:
# GET request
form = BidListing(id=id)