Ich versuche, Daten BillRecord von Django admin.I zu einer Tabelle hinzufügen müssen ausgewählte Werte von in Modell ManyToMany Feld zuzugreifen Methode speichern und müssen Führen Sie eine Logik aus, die von den ausgewählten Objekten des Felds ManytoMany abhängt.Get Werte von ManyToMany Feld in django Modell Speichermethode ausgewählt
class ProductType(BaseApplicationModel):
name = models.CharField(max_length=128)
class Product(BaseApplicationModel)
type = models.ForeignKey(ProductType,related_name="products")
class BillRecord(BaseApplicationModel):
products = models.ManyToManyField(Product, related_name="billrecords")
def save(self, *args, **kwargs):
super(BillRecord, self).save(*args, **kwargs)
for product in self.products.all():
print product
In dem Code, wenn ich die Werte von Produkt zu drucken versucht, es mir billing.Product.None
gibt, die self.products.all()
kehrt leer queryset
ich die IDs der ausgewählten Objekte im ManyToMany Feld Auswahlfeld bekommen müssen, ist.
Nach dem Hinzufügen, was Sie erwähnt Ich erhalte 'Attribute:
So sollten Sie etwas wie das folgende versuchen Typ Objekt ' BillRecord_products 'hat kein Attribut' product_set'' – albinantony143
@ albinantony143 Sorry, ich hatte es nicht getestet, da es als Beispiel angegeben wurde. In diesem Fall können Sie auf das Schlüsselwort "instance" zugreifen (mit 'kwargs.pop (" instance ")') und es als Ihre 'BillRecord'-Instanz verwenden. – Selcuk
'kwargs.pop (" instance ")' gibt mir eine Instanz von 'BillRecord'. Und als ich versuchte, "kwargs.pop (" instance ") zu drucken, gab es immer noch" billing.Product.None ". Gibt es einen Weg durch, ich kann die IDs von ManyToMany Feldobjekte erhalten. – albinantony143