Tôi có một mô hình trông như thế này:Django Giới hạn ManytoMany queryset dựa trên chọn FK
class Invite(models.Model):
user = models.ForeignKey(User)
event = models.ForeignKey(Event)
roles = models.ManyToManyField(Role, blank=True, null=True)
sent = models.BooleanField("Invite Sent", default=False, editable=False)
created = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return u"%s" % self.user
class Meta:
unique_together =(('user','event'),)
class Role(models.Model):
"""
This associates a user's role to an event
"""
event = models.ForeignKey(Event, related_name="roles")
roletype = models.ForeignKey(RoleType)
profiles = models.ManyToManyField(Profile, related_name="roles",
blank=True, null=True)
modified = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
Vì vậy, bất cứ khi nào một sự kiện mới được tạo ra, một loạt các vai trò được tạo ra cùng với nó. Trong mô hình Mời, làm thế nào tôi có thể chỉ hiển thị các vai trò liên kết với sự kiện tôi đã chọn trong biểu mẫu thay đổi trong Quản trị Django thay vì hiển thị tất cả các mục trong mô hình Vai trò?
Không, điều này có thể (và nên) đạt được trong mã Python. – DrMeers
Giải pháp cần java script bởi vì khi anh ta chọn 'event' trong form, role phải được lọc động (không nhấn nút, submit toàn bộ form và sau đó quay trở lại với các lựa chọn đã được lọc), do đó' ajax' là cách đi. – Pannu
Có, nếu bạn muốn thay đổi trong trình duyệt khi bạn thay đổi sự kiện đã chọn trong tiện ích, thì tất nhiên bạn cần sử dụng Javascript. Xin lỗi, tôi đã đọc sai. – DrMeers