ich ein Modell haben Benutzer Beitrag zu speichern:django Admin fügt keine Objekte in ManyToMany Felder
class Tag(models.Model):
name = models.CharField(max_length=255, unique=True)
class Post(models.Model):
user = models.ForeignKey(User)
body = models.TextField()
tags = models.ManyToManyField(Tag, blank=True)
pub_date = models.DateTimeField(default=timezone.now)
activity = GenericRelation(Activity, related_query_name="posts")
Nun, wenn ich einen neuen Beitrag Objekt zu speichern, würde Ich mag den Beitrag Objekt des Körpers in die Post-Objekts speichern Tags Feld. Ich tue dies unter Verwendung der Signale:
@receiver(post_save, sender=Post)
def create(sender, instance, **kwargs):
if kwargs.get('created', True):
tag_list = [Tag.objects.create(name=word) for word in instance.body.split()]
print "from signals!: instance body: %s" % instance.body
instance.tags.add(*tag_list)
if not kwargs.get('created', False):
tag_list = [Tag.objects.create(name=word) for word in instance.body.split()]
print "already signals!: instance body: %s" % instance.body
instance.tags.add(*tag_list)
Also, wenn ich ein neues Objekt Beitrag im Admin speichern, einen neuen Beitrag Objekt schafft, auch Tag-Objekte in tag_list erstellen. Aber ... es fügt die Tags aus tags_list nicht in das Feld "Viele zu viele" des Objekts ein (d. H. Post_object.tags).
Wenn ich jedoch ein neues Post-Objekt aus der Shell erzeuge, erstellt es ein neues Post-Objekt, erstellt Tag-Objekte in tag_list und fügt die Tags auch in das post.objects-Tag-Feld ein.
Was mache ich hier falsch? Es scheint, dass das Problem in Django Admin ist.
Beide 'if's verweisen auf gleiche Logik :) – ruddra
@ruddra Meine Frage ist völlig anders. – Robin
Entschuldigung mein Fehler. Entfernt – ruddra