cuốn sách gpt4 ai đã làm

Django - Làm cách nào để lọc lựa chọn khóa ngoại trong cột có thể chỉnh sửa trong bảng trang quản trị?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 18:33:35 27 4
mua khóa gpt4 Nike

我的 models.py Nó chứa nội dung sau:

Kích thước lớp (model.Model):
kích thước = models.CharField(max_length=20, Primary_key=True)

Sách lớp (models.Model):
tiêu đề = models.CharField(max_length=100, Primary_key=True)
size = models.ForeignKey(Kích thước, null=Sai)

Tờ rơi lớp (models.Model):
tiêu đề = models.CharField(max_length=100, Primary_key=True)
size = models.ForeignKey(Kích thước, null=Sai)
book = models.ForeignKey(Sách, null=True)

Khi cơ sở dữ liệu được xây dựng lần đầu, các bảng Thứ nguyên, Sách và Tờ rơi sẽ được điền và mỗi cuốn sách và tờ rơi được liên kết với một kích thước duy nhất. Tuy nhiên, khóa ngoại từ Pamphlet đến Book vẫn chưa được thiết lập.

Trách nhiệm của người dùng là vào trang quản trị và chọn những cuốn sách liên quan đến mỗi tập sách. Tính năng quản trị của Django có thể làm cho cột này trong bảng được hiển thị có thể chỉnh sửa được và nó đủ thông minh để tự động tạo danh sách thả xuống hiển thị tất cả các sách có thể có trong bảng sách để người dùng lựa chọn.

Tuy nhiên, bảng sách này chứa hàng trăm lựa chọn và tôi biết việc người dùng chọn một cuốn sách có cùng kích thước với tập sách nhỏ là điều hợp lý. Vì vậy, tôi muốn lọc các tùy chọn trong danh sách thả xuống do Django tạo để chỉ hiển thị những cuốn sách có cùng kích thước với Cuốn sách nhỏ.

Làm thế nào tôi có thể làm điều này?

Tôi nhìn vào đây:Làm cách nào để lọc các lựa chọn ForeignKey trong Django ModelForm?Nhưng điều này dường như không đề cập đến khả năng quản lý của Django.

câu trả lời hay nhất

Chuyên môn get_changelist_formPhương thức của quản trị viên trả về lớp biểu mẫu tùy chỉnh. Lớp biểu mẫu có thể là __init__ đặt nó trong phương thức sách cánh đồng bộ truy vấn thuộc tính, tùy thuộc vào nó ví dụ Các thông số đã nhận được. Ví dụ:

lớp PamphletChangeListForm(forms.ModelForm):
lớp Meta:
model=Tờ rơi

def __init__(self, *args, **kwargs):
super(PamphletChangeListForm, self).__init__(*args, **kwargs)
instance = kwargs.get('instance')
ví dụ nếu:
self.fields['book'].queryset = Book.objects.filter(size=instance__size)

Django - Làm cách nào để lọc lựa chọn khóa ngoại trong cột có thể chỉnh sửa trong bảng trang quản trị? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/21972594/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress