Bar có ForeignKey to Foo, nhiều Bar cho một Foo. Sử dụng Biểu mẫu ở Django, foreign key defaults to a select list input.thả xuống lựa chọn khóa ngoại ở Django Rest Framework
Tôi muốn chức năng này trong khung Django Rest, trước tiên cho API có thể duyệt, sau đó cho Trình tạo mẫu HTML. Tôi đã hơn nested relations in the docs và cũng đã thấy this related question, nhưng nó không có ý nghĩa. Ít nhất nó làm cho tôi nghĩ rằng, tôi nên được nhìn thấy hành vi thả xuống giống như cổ phiếu Django Forms.
cuối cùng tôi muốn có một cách để chúng ta hãy chọn một Foo hiện khi tạo/cập nhật Bar Tôi tin rằng tôi có thể làm điều đó với TemplateHTMLRenderer bằng tay crafting một hình thức thay đổi trường biểu mẫu để các dữ liệu JSON đầy đủ, tức là một Bar mới đó là trỏ đến Foo hiện có, giả sử tôi viết cập nhật và tạo các phương thức trên Bar. Nhưng điều này nghe có vẻ như tôi đang thiếu "cách dễ dàng" ở đâu đó.
class BarSerializer(serializers.ModelSerializer):
# This shows Foo.foo within serialzied Bar JSON:
# I suspect I am missing something with the relation that would allow me to select foo from a list
foo = serializers.SlugRelatedField(many=False, read_only=True,slug_field="foo")
class Meta:
model = Bar
fields = ('foo','some_value','another_value')
class FooSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
# This shows the Bar serialized within the Foo JSON i.e. nested serialization
bars = BarSerializer(many=True);
# reverse rel: related_name='bars' in Foo model
class Meta:
model = Foo
# 'bars' is the related name pointing from bar to foo
fields = ('bars', 'foo', 'owner')
Tôi hiểu rằng để lưu dữ liệu lồng nhau, bộ nối tiếp của tôi cần cập nhật và tạo. Thực hiện điều này ngay bây giờ. Nhưng tôi không thể có được đầu của tôi xung quanh, những gì tôi sẽ làm gì để có DRF cư một đầu vào chọn với một số đại diện của các tùy chọn Foo?
Tôi thiếu điều gì đó hiển nhiên? Dưới đây là các RTFM (một lần nữa) downvotes:/