سؤال

ولدي نموذج جانغو (الجدول الزمني) مع فئة من الكيان، وهذا هو والد Activity، وهذا هو والد Event.

class Entity(models.Model):
    <...>

class Activity(models.Model):
    <...>
    team_entity = models.ForeignKey(Entity)
    <...>   

class Event(models.Model):
    <...>
    activity = models.ForeignKey(Activity)
    <...>

وكيف تسلسل والحصول على كل وجوه الأطفال والأحفاد كجزء من ملف JSON؟

هل كانت مفيدة؟

المحلول 2

وأنا الآن استخدام جانغو مكبس. هذا لا حيلة.

نصائح أخرى

وقبل أن تفعل التسلسل، عند استرداد الأشياء الخاصة بك، للحفاظ على العلاقات استخدام select_related () للحصول على الأطفال والأحفاد، الخ

http://docs.djangoproject.com/en/dev/ المرجع / نماذج / مجموعات طلبات /

ويبدو لي أن مسألة الملصق كان يسأل كان في نهاية المطاف مع نتيجة لذلك مثل:

وعلى سبيل المثال، بدءا من هذه النماذج:

class Entity(models.Model):
    name = models.CharField(...)

class Activity(models.Model):
    name = models.CharField(...)
    team_entity = models.ForeignKey(Entity)

class Event(models.Model):
    name = models.CharField(...)
    activity = models.ForeignKey(Activity)

والنتيجة في JSON:

{
    "model": "Entity",
    "name":  "Dallas Cowboys",
    "activities": [
        {
            "model": "Activity",
            "name": "Practice"
        },

        {
            "model": "Activity",
            "name": "Game"
            "events": [
                {
                    "model": "Event",
                    "name": "vs Washington Redskins"
                },

                {
                    "model": "Event",
                    "name": "vs Green Bay Packers"
                }
            ]
        }
    ]
}

وهكذا الحفاظ على الوالدين والطفل الحفيد (لا الإرث، ولكن واحد إلى العديد من اجتياز العلاقة). إذا كان هذا لا نية الملصق الأولي، وأنا أعتذر ... ولكن إذا كان الأمر كذلك أود أن الإجابة على هذا أيضا.

وإلقاء نظرة على تسلسل النماذج الموروثة والكائنات من وثائق جانغو متاح على الموقع http://docs.djangoproject.com/en/dev/topics/serialization/؟from=olddocs#inherited-models

وهذا يجب ان تحل مشكلتك.

وأعتقد أنك يمكن أن تجد إجابتك هنا: http://code.djangoproject.com/ticket/ 4656

وهذا سوف تصبح جزءا من serializers جانغو في مرحلة ما. الآن يجب أن تكون قادرة على أن تحل فقط serializers جانغو القياسية مع هذا والعمل بعيدا.

ويمكنك القيام بذلك في اثنين من خطوط بسيطة من التعليمات البرمجية:

from django.core import serializers
data = serializers.serialize("json", SomeModel.objects.all())
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top