Ich habe folgende drei Beziehungen:bekommt Wert von dinstinct Objekt für Auswahlfeld in django Form
class Size(models.Model):
amount = models.IntegerField(default=0)
unit = models.CharField(max_length=64)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
def __str__(self):
return str(self.amount) + ' ' + self.unit + ' size'
class Sku(models.Model):
product = models.ForeignKey(Product)
size = models.ForeignKey(Size)
style = models.ForeignKey(Style)
price = models.DecimalField(max_digits=8, decimal_places=2)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
def __str__(self):
return self.product.name
class ProductImage(models.Model):
product = models.ForeignKey(Product)
title = models.CharField(max_length=128, blank=True, null=True)
image = models.ImageField(upload_to='products', blank=True, null=True)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
def __str__(self):
return self.product.name
Ich möchte alle Größen zeigen, dass Fremdschlüssel von SKUs als Auswahlmöglichkeiten in einer Modellform sind.
ich das versucht:
class SkuForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
product = kwargs.pop('product', None)
super(SkuForm, self).__init__(*args, **kwargs)
skus = product.sku_set.all()
self.fields['size'].queryset = Size.objects.filter(sku__in=skus).values('amount', 'unit').distinct()
quantity = forms.IntegerField()
class Meta:
model = Sku
fields = ('size',)
Dies bringt die folgenden Werte in meinem Dropdown-Menü für "Größe":
{'amount':5, 'size':'cups'}
Wie kann ich es haben einfach zeigen: "5 Tassen"?