1

formsetNeo4j ノード間の接続を作成するために使用しようとしています。これらのモデルは、django-neomodel パッケージを使用して構築されています。それらは外部キーを使用して関連付けられていませんが、これは問題ではないので、そうinline formsetではありませんか?

models.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)

form.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