ich ein RELATION Modell mit einem Fremdschlüssel für sich haben:Django Serialisierung natürliche Schlüssel verwenden: Fremdschlüssel zu dem gleichen Modell
class TypeManager(models.Manager):
def get_by_natural_key(self, slug):
return self.get(slug=slug)
class RelationType(models.Model):
name = models.CharField(_(u"Name"), max_length=100)
slug = models.SlugField(_(u"Slug"), max_length=100, unique=True)
inverse_relation = models.ForeignKey(
'RelationType', verbose_name=_(u"Inverse relation"),
blank=True, null=True)
objects = TypeManager()
def natural_key(self):
return (self.slug,)
Sobald es serialisiert produziert diese Art von JSON:
[{
"fields": {
"name": "Has got",
"inverse_relation": [
"is_in"
],
"slug": "has_got"
},
"model": "myapp.relationtype"
},
{
"fields": {
"name": "Is in",
"inverse_relation": [
"has_got"
],
"slug": "is_in"
"model": "myapp.relationtype"
}]
Dies ist ladbar logisch nicht von Django:
DeserializationError: Problem installing fixture 'myfixture.json': RelationType matching query does not exist.
gibt es ein Mittel diese weise zu verwalten?
Wahrscheinlich nicht zu Ihrem Problem zu tun hat, sondern die Fremdschlüssel sollten 'definiert werden' 'self'''. Siehe [doc] (https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey). – mimo
Tatsächlich löst es das Problem nicht. Aber danke für diese Bemerkung. Die Verwendung von "self" ist interessant, wenn die Unterklasse des Modells verwendet wird. –