【问题标题】:Posting in several tastypie resources simultaneously同时发布几个美味的资源
【发布时间】:2013-04-18 16:41:20
【问题描述】:

这就是我想要做的:

用户在我的应用程序中创建了一个事件。这是模型:

class Event(models.Model):
    name = models.CharField(max_length=40)
    organizer = models.ForeignKey(UserProfile)
    description = models.TextField(null=True)
    place = models.TextField(null=True)
    confirmed = models.BigIntegerField(null=True)
    organizer_part = models.BooleanField(default=True)
    slug = models.SlugField()

之后,它会发布受邀参加此活动的不同人员以及用户选择的不同日期。以下是模型:

class EventDate(models.Model):
    """Correspondances date-event"""
    event = models.ForeignKey(Event)
    date = models.BigIntegerField()


class EventPeople(models.Model):
    """Correspondances personne-event"""
    event = models.ForeignKey(Event)
    phone_number = models.PositiveIntegerField()
    name = models.CharField(max_length=32)
    answer = models.BooleanField()
    participation = models.NullBooleanField()

我只想在一个请求中填写这三个模型。到目前为止,我必须提出三个请求。我看不出我怎么可能做到。

任何想法都将受到高度赞赏。

【问题讨论】:

    标签: django django-models tastypie


    【解决方案1】:

    应该与您的模型一起使用的资源是:

    class EventResource(ModelResource):
        event_dates = fields.ToManyField(EventDateResource, 'event_dates')
        event_peoples = field.ToManyField(EventPeopleResource, 'event_peoples')
        class Meta:
              queryset = Event.objects.all()
    

    您还必须创建简单的 EventDateResource 和 EventPeopleResource。

    你的模型再一变,需要添加related_names:

    class EventDate(models.Model):
        """Correspondances date-event"""
        event = models.ForeignKey(Event, related_name='event_dates')
        date = models.BigIntegerField()
    
    
    class EventPeople(models.Model):
        """Correspondances personne-event"""
        event = models.ForeignKey(Event, related_name='event_peoples')
        phone_number = models.PositiveIntegerField()
        name = models.CharField(max_length=32)
        answer = models.BooleanField()
        participation = models.NullBooleanField()
    

    【讨论】:

    • 我现在就试试这个。所以我应该能够发送如下所示的 json 数据: {'event_field1':'data1','event_field2':'data2', ... , event_dates :[{event:event,date:187675878000},{event :事件,日期:187675878000}],等等...?它会一次填充所有表格吗?
    • 我收到以下错误:“'Event' 对象没有属性 'event_dates'”
    • 另外,如果我理解正确,它将创建一个连接表,我想避免这种情况,因为我的 EventDate 资源已经是一个连接表,带有事件外键.
    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多