0

Django Rest Framework を使用して、モバイル アプリに API を提供しています。Order と User の 2 つのモデルがあります。Order には User との外部キー関係があります。

すべての注文オブジェクトの約 1% で、User フィールドが null です。cURL を使用してこの動作をテストしてきました。

ユーザー オブジェクトなしで cURL を実行すると、「このフィールドは必須です」と表示されます。間違ったユーザー オブジェクトで実行すると、オブジェクトが存在しないことがわかります。これらはどちらも意図された動作であり、期待される動作です。

一部の Order オブジェクトをユーザー フィールドなしで保存する方法を理解しようとしています。私が考慮していないことがありますか?

私の見解:

class OrderList (generics.ListCreateAPIView):
    model = Order
    serializer_class = OrderSerializer

そしてシリアライザー:

class OrderSerializer (serializers.ModelSerializer):
    user = serializers.SlugRelatedField(slug_field = 'user')
    partial = True

    class Meta:
        model = Order

モデル:

class User (models.Model):
    uid = models.CharField(max_length =200, unique=True)

class Order (models.Model):
    uid = models.ForeignKey (User, related_name = "orders", verbose_name = "User",blank=True, null=True)
4

2 に答える 2

0

2 つの異なるModelSerializerクラスを使用できます。1 つは作成用で、関連フィールドOrderなしではオブジェクトを作成できないことを確認し、もう 1 つは関連フィールドのコンストラクターにUser渡される注文の更新用です。required=False関連していませんUser

于 2013-06-17T10:42:02.020 に答える