請求書リソースにデータを投稿するときに奇妙な問題が発生します。製品の検証が失敗した場合でも、請求書は失敗した製品データなしで保存されます。
私が望むのは、すべての製品が検証されるまで請求書が保存されないことです。
請求書リソースで製品の検証を何らかの方法で処理する必要がありますか?
コードの下に....
models.py
class Invoice(models.Model):
some_model_fields
class Product(models.Model):
invoice = models.ForeignKey(Invoice)
some_model_fields
とforms.py
class ProductForm(ModelForm):
class Meta:
model = Product
exclude = ['invoice']
class InvoiceForm(ModelForm):
class Meta:
model = Invoice
と resources.py
class ProductResource(ModelResource):
invoice = fields.ForeignKey('apps.api.InvoiceResource', 'invoice')
class Meta:
resource_name = 'product'
queryset = Product.objects.all()
validation = FormValidation(form_class=ProductForm)
class InvoiceResource(ModelResource):
products = fields.ToManyField(ProductResource,
'product_set',
related_name='invoice',
null=False,
full=True)
class Meta:
queryset = Invoice.objects.all()
resource_name = 'invoice'
always_return_data = True
validation = FormValidation(form_class=InvoiceForm)