2009-12-22 33 views
8

tôi có các mô hình:Django quản trị trang web đảo ngược ForeignKey inline

(giả)

Course: 
    ForeignKey(Outline, null=True, blank=True) 
    ForeignKey(OutlineFile, null=True, blank=True) 

Outline:  
    //data 

OutlineFile:  
    //different data 

Tình hình là khóa học bất kỳ có thể có một Outline liên kết với nó, và/hoặc một OutlineFile, hay không . Một Outline có thể được kết hợp với nhiều khóa học, tương tự như một OutlineFile có thể được kết hợp với nhiều khóa học. Tuy nhiên, một khóa học sẽ chỉ có tối đa một trong mỗi khóa học.

Điều tôi muốn là có trang Quản trị thay đổi khóa học hiển thị tất cả các trường Khóa học và một trình đơn thả xuống cho mỗi Outline và OutlineFile. Nếu sau đó được chọn, tôi muốn các trường cho Đường viền đó được hiển thị và có thể sửa đổi, giống như một trường nội tuyến.

Tôi có nên cấu trúc lại mô hình của mình bằng cách nào đó hoặc chúng được cấu trúc đầy đủ chưa? Có anyway để làm những gì tôi muốn trong giới hạn của hệ thống inline hiện tại?

Cuối cùng, nếu không thể, tôi bắt đầu làm việc đó theo cách tùy chỉnh ở đâu?

+2

bản sao của: http://stackoverflow.com/questions/6419248/inline-like-solution-for-django-admin-where-admin-contains-foreignkey-to-other-m – Anentropic

Trả lời

1

Bạn đang làm nó theo cách khác xung quanh:

class Course(models.Model): 
    # Foreign key is defined only in related fields 

class Outline(models.Model):  
    course = models.ForeignKey(Course, 
    related_name='outlines', # Or whatever you choose 
    null=True, # These two mean your FK relation is basically optional 
    blank=True 
    ) 

class OutlineFile(models.Model):  
    # Same structure as above 

Khi bạn tạo các hình thức tiêu chuẩn, cấu trúc mô hình này sẽ tạo ra một danh sách thả xuống như bạn chỉ định theo mặc định.

Các vấn đề liên quan