"aracılığıyla" olanlar burada bulunabilir gibi düzgün, ilişkiler "ile" Birçok Çok başa anlamaya: https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationshipsdjango-tastypie ve pek çok Django ve Tastypie ben çalışılıyor birlikteliklerin
İşte Örneğim modeller:
class Ingredient(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
class RecipeIngredients(models.Model):
recipe = models.ForeignKey('Recipe')
ingredient = models.ForeignKey('Ingredient')
weight = models.IntegerField(null = True, blank = True)
class Recipe(models.Model):
title = models.CharField(max_length=100)
ingredients = models.ManyToManyField(Ingredient, related_name='ingredients', through='RecipeIngredients', null = True, blank = True)
Şimdi benim api.py dosyası: Bu örnekte benim kod dayandırmak çalışıyorum
class IngredientResource(ModelResource):
ingredients = fields.ToOneField('RecipeResource', 'ingredients', full=True)
class Meta:
queryset = Ingredient.objects.all()
resource_name = "ingredients"
class RecipeIngredientResource(ModelResource):
ingredient = fields.ToOneField(IngredientResource, 'ingredients', full=True)
recipe = fields.ToOneField('RecipeResource', 'recipe', full=True)
class Meta:
queryset= RecipeIngredients.objects.all()
class RecipeResource(ModelResource):
ingredients = fields.ToManyField(RecipeIngredientResource, 'ingredients', full=True)
class Meta:
queryset = Recipe.objects.all()
resource_name = 'recipe'
: http://pastebin.com/L7U5rKn9
Maalesef bu kodla bu hatayı alıyorum:
"error_message": "'Ingredient' object has no attribute 'recipe'"
kimse burada ne olduğunu biliyor mu? Ya da içeriğin adını RecipeIngredientResource içine nasıl ekleyebilirim? Teşekkürler!
DÜZENLEME: hatayı kendim bulmuş olabilir
. ToManyField, RecipeIngredient'e değil, Malzemeye yönlendirilmelidir. Bu işin yapılıp yapılmadığını göreceğim.
DÜZENLEME:
Yeni hatası .. herhangi bir fikir? Nesnenin '' boş bir özniteliği 'başlığı' var ve varsayılan veya boş değere izin vermiyor.
Lütfen bu yazının cevabının önemli noktalarını buraya ekleyin. Yığın Taşması, şeylerin bağlantılarının bir deposu olmak için değil, cevapların bir deposu olmak için burada değildir. Bu ayrıca blogunuzu tanıtmanın çok uygunsuz bir yoludur. –
Duh, Tamam, .. Cevabını buraya kopyalayacağım ... Gönderi çok uzun olduğu için ... – Yeo
Bağlantı şu anda ölü gibi görünüyor – msc