我已經看到了有關如何設置ModelMultipleChoiceField以使用自定義查詢集的所有howtos,並且我嘗試了它們,並且它們都可以正常工作。但是,它們都使用相同的範例:查詢集只是相同對象的過濾列表。將ModelMultipleChoiceField的查詢集動態設置爲自定義記錄集
就我而言,我試圖讓管理員繪製一個多選表單,而不是使用用戶名作爲文本部分,我想從我的帳戶類中使用name
字段。
這裏是我有什麼故障:
# models.py
class Account(models.Model):
name = models.CharField(max_length=128,help_text="A display name that people understand")
user = models.ForeignKey(User, unique=True) # Tied to the User class in settings.py
class Organisation(models.Model):
administrators = models.ManyToManyField(User)
# admin.py
from django.forms import ModelMultipleChoiceField
from django.contrib.auth.models import User
class OrganisationAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
from ethico.accounts.models import Account
self.base_fields["administrators"] = ModelMultipleChoiceField(
queryset=User.objects.all(),
required=False
)
super(OrganisationAdminForm, self).__init__(*args, **kwargs)
class Meta:
model = Organisation
這個工作,但是,我想上面queryset
畫一個選擇框與Account.name
屬性和User.id
財產。這不起作用:
queryset=Account.objects.all().order_by("name").values_list("user","name")
它失敗與此錯誤:
'tuple' object has no attribute 'pk'
我想,這將是容易的,但它變成死角小時。任何人都在關注一些光明?
爲什麼我被低估了?你可以解釋嗎 ? – sebpiq 2010-05-17 09:14:56