this question과 매우 유사하지만 허용 된 답변을 시도했지만 제대로 작동하지 않았습니다. 여기에 무슨 일이 일어나고 있는지. 나는 사용자가 원하는Django에서 여러 개의 확인란을 미리 선택하는 경우
class Photo(models.Model):
user = models.ForeignKey(User)
...
class Person(models.Model):
user = models.ForeignKey(User)
photos = models.ManyToManyField(Photo)
...
forms.py
class TaggingForm(forms.Form):
def __init__(self, *args, **kwargs):
queryset = kwargs.pop('queryset')
super(TaggingForm, self).__init__(*args, **kwargs)
self.fields['people'] = forms.ModelMultipleChoiceField(required=False, queryset=queryset, widget=forms.CheckboxSelectMultiple)
...
models.py :
나는이 보이는 사진에서 사용자를 태그에 대한 양식을 가지고 처음 태그를 지정한 후 사진에서 태그를 편집 할 수 있어야합니다. 그래야 g 페이지를 볼 수 있습니다. o 단일 사진을보고 태그를 편집합니다. 분명한 이유로 이미 태그가 지정된 개인의 확인란을 미리 선택하고 싶습니다. 나는 폼의 초기 사전에 위의 링크 된 질문에 대한 대답과 같이 내가 원하는 사람의 목록을 제공하여이 작업을 시도했습니다.
def photo_detail(request,photo_id):
photo = Photo.objects.get(id=photo_id)
initial = {'photo_id':photo.id, 'people':[p for p in photo.person_set.all()]}
form_queryset = Person.objects.filter(user=request.user)
if request.method == "POST":
form = TaggingForm(request.POST, queryset=form_queryset)
# do stuff
else:
form = TaggingForm(initial=initial, queryset=form_queryset)
...
나는 위의 코드와 같이 사람들을 초기화하려고 views.py는, 형태는 표시되지 않습니다,하지만 오류 중 하나를 발생하지 않습니다. "사람"키/값 쌍을 초기 사전에서 꺼내면 양식이 잘 보이지만 사람을 확인하지는 않습니다. 또한 중요한 경우 Django 1.5 사용하고 있습니다. 미리 감사드립니다.
도움이 될 것이라고 생각합니다. http://stackoverflow.com/questions/604266/django-set-default-form-values –
나는 뭔가를 놓친 것입니까? 그 대답은 이미 설정 한 초기 값의 개념을 소개하는 것 같습니다. 그것은 작동하지 않는 체크 박스의 초기 값일 뿐이므로 검사 할 객체의 목록이 아닌 경우 무엇을 주어야할지 모르겠다. – snorthway
django 폼을 사용하여 설정 초기 값을 사용하지 않는 이유는 무엇입니까? 그게 내가 뭘하려고했는지. –