1

我正在尝试使用formset在我的 Neo4j 节点之间创建连接。这些模型是使用 django-neomodel 包构建的。它们不使用外键相关,但由于这不是一个不重要的inline formset问题,对吧?

模型.py

class Person(DjangoNode):
  uid = UniqueIdProperty()
  name = StringProperty(max_length=50)
  created_at = DateTimeProperty(default=datetime.now)

  friends = RelationshipTo('Friend', 'FRIENDED', model=FriendRel)

  # DjangoNode class must have a Meta class and documentation specifies 'django_node'
  class Meta:
    app_label = 'django_node'


class FriendRel(DjangoRel):
  created_at = DateTimeProperty(default=datetime.now)

  class Meta:
    app_label = 'django_rel'

表格.py

class PersonForm(forms.ModelForm):
  class Meta:
    model = Person
    # don't need fields for automatically assigned keys like `uid` and `created_at`
    fields = ['name']


class FriendRelForm(forms.ModelForm):
  class Meta: 
    model = FriendRel
    exclude = () #"creating ModelForm without either 'fields' || 'exclude' attribute is prohibited"

FriendRelFormSet = formset_factory(FriendRelForm, extra=1)

表单.html

<div>
  <form action="" method="post">{% csrf_token %}
    {{ form.as_p }}

    <table class="table">
      {{ friends.management_form }}

      {% for form in friends.forms %}
        {% if forloop.first %}
          <thead>
            <tr>
              {% for field in form.visible_fields %}
                <th>{{ field.label|capfirst }}</th>
              {% endfor %}
            </tr>
          </thead>
        {% endif %}
        <tr class="{% cycle "row1" "row2" %} formset_row">
          {% for field in form.visible_fields %}
            <td>
              <!-- Include the hidden fields in the form -->
              {% if forloop.first %}
                {% for hidden in form.hidden_fields %}
                  {{ hidden }}
                {% endfor %}
              {% endif %}
              {{ field.errors.as_ul }}
              {{ field }}
            </td>
          {% endfor %}
        </tr>
      {% endfor %}
    </table>
    <input type="submit" value="Save"/>
  </form>
</div>

我期待一个“朋友”表单集出现在呈现的表单中,但我不太确定如何在那里获得它。如果我添加以下内容,则会出现错误:

  class FriendRelForm(forms.ModelForm):
    class Meta: 
      model = FriendRel
      exclude = ()
      fields = ['friends']

***ERROR*** django.core.exceptions.FieldError: Unknown field(s) (friends) specified for FriendRel
4

0 回答 0