나는 내 목표는 is_active
이 False
입니다 ModelOne 항목을 필터링하는 것입니다 ModelTwoAdmin장고 관리자에서 특정 forgein 키를 제거 하시겠습니까?
class ModelTwoAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self,db_field,request, **kwargs):
if db_field.name == 'modone':
kwargs['queryset'] = ModelOne.objects.exclude(is_active=False)
fieldsets = [
('String 1', {'fields' : ['another_desc','modone']}),
('String 2', {'fields' : ['is_active']}),
]
에 대해 다음 두 가지 모델
class ModelOne(models.Model):
mod_desc = models.CharField(max_length=25)
is_active = models.BooleanField(default=True)
class ModelTwo(models.Model):
another_desc = models.CharField(max_length=25)
is_active = models.BooleanField(default=True)
modone = models.ForeignKey(ModelOne)
다음과 같은 관리 코드가 있습니다.
Django Version: 1.4
Exception Type: KeyError
Exception Value:
"Key 'modone' not found in Form"
Exception Location: c:\Python\Python2.7\App\lib\site-packages\django\forms\forms.py in __getitem__, line 109
1 <fieldset class="module aligned {{ fieldset.classes }}">
2 {% if fieldset.name %}<h2>{{ fieldset.name }}</h2>{% endif %}
3 {% if fieldset.description %}
4 <div class="description">{{ fieldset.description|safe }}</div>
5 {% endif %}
6 {% for line in fieldset %}
**7 <div class="form-row{% if line.fields|length_is:'1' and line.errors %} errors{% endif %}{% for field in line %}{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endfor %}">**
8 {% if line.fields|length_is:'1' %}{{ line.errors }}{% endif %}
9 {% for field in line %}
10 <div{% if not line.fields|length_is:'1' %} class="field-box{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}"{% endif %}>
11 {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12 {% if field.is_checkbox %}
13 {{ field.field }}{{ field.label_tag }}
14 {% else %}
15 {{ field.label_tag }}
16 {% if field.is_readonly %}
17 <p>{{ field.contents }}</p>
는 어떻게 비활성 ModelOne
의를 필터링 할 수 있습니다 : 라인 7은 스택 추적에 있지만 여기 **
로 둘러싸여 코드 블록으로 표시됩니다 - 단, 위의 코드는 오류를 반환?
시도해 보았습니다. (시도한 내용을 반영하여 답변을 편집했습니다.) 오류는 전혀 변하지 않았습니다. – Andy
'runserver' 또는 다른 웹 서버를 사용하고 있습니까? –
'runserver'를 실행 중입니다 – Andy