Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用Tastypie发布关系数据时出错_Django_Django Models_Tastypie - Fatal编程技术网

Django 使用Tastypie发布关系数据时出错

Django 使用Tastypie发布关系数据时出错,django,django-models,tastypie,Django,Django Models,Tastypie,我有这两种型号: class Order(models.Model): shop = ForeignKey(Shop) date_modified = DateTimeField(auto_now=True) class Meta: db_table = 't_order' class Transaction(models.Model): order = ForeignKey('Order') quantity = IntegerFie

我有这两种型号:

class Order(models.Model):
    shop = ForeignKey(Shop)
    date_modified = DateTimeField(auto_now=True)

    class Meta:
        db_table = 't_order'

class Transaction(models.Model):
    order = ForeignKey('Order')
    quantity = IntegerField()
    item = ForeignKey(Item)
    date_modified = DateTimeField(auto_now=True)

    class Meta:
        db_table = 't_transaction'
和两个资源:

class OrderResource(ModelResource):
    shop = fields.ToOneField(ShopResource, 'shop')
    transactions = fields.ToManyField('TransactionResource','transaction_set', full=True)

    class Meta:
        queryset = Order.objects.all()
        resource_name = 'order'
        authentication = Authentication()
        authorization = Authorization()
        allowed_methods = ['post', 'get']
class TransactionResource(ModelResource):
        order = fields.ToOneField('OrderResource', 'order')
        item = fields.ToOneField('ItemResource', 'item')
    class Meta:
        queryset = Transaction.objects.all()
        resource_name = 'transaction'
        authentication = Authentication()
        authorization = Authorization()
        allowed_methods = ['post', 'get']
我正在将此数据发布到

http://127.0.0.1:5000/api/order/
:

我遇到以下错误:

"error_message": "Transaction has no order.",
如果我删除

order = fields.ToOneField('OrderResource', 'order')
我从TransactionResource获得的行:

"error_message": "(1048, "Column 'order_id' cannot be null")",

我哪里错了?

在事务到任何字段定义中缺少相关的\u name属性。 而不是:

transactions = fields.ToManyField('ttests.api.TransactionResource','transaction_set', full=True)
你应使用:

transactions = fields.ToManyField('ttests.api.TransactionResource','transaction_set', full=True, related_name='order')

然后,当您发布交易时,tastypie将不希望您在交易中提供订单。

现在我收到了“错误消息”:(1048,“列'order\u id'不能为空”)“againI add order=fields.ToOneField('OrderResource','order'),现在可以了。
transactions = fields.ToManyField('ttests.api.TransactionResource','transaction_set', full=True, related_name='order')