0

モデルPageMark.

MarkModelFormクラスもあり、MarkFormを除くすべての属性をウィジェットとして表示するように指示しました。と- one , manyの間には 1 対多の関係があります。ForeignKeyeditable=FalsePageMarkPageMarks

MarkFormただし、を送信しようとすると、ForeignKeyフィールドを空白にすることはできません.htmlにフォーム出力がないように、(サーバー側で)フォームに自動的に伝える方法はありますか(ユーザーがmarks他のものをいじったり追加したりしたくありませんPages)。

何か不足している場合は、お知らせください。モデルまたはビューで何か間違ったことをした可能性があります。ここにいくつかのコードがあります:

class Mark(models.Model):
    page  = models.ForeignKey(Page, editable=False)
    x = models.IntegerField()
    y = models.IntegerField()
    width = models.IntegerField()
    height = models.IntegerField()
    body = models.CharField(max_length=200)

class MarkForm(forms.ModelForm):
    class Meta:
        model = Mark
        widgets = {
            'x': HiddenInput(),
            'y': HiddenInput(),
            'width': HiddenInput(),
            'height': HiddenInput(),
            'body': HiddenInput(),
        }
4

1 に答える 1

2

フィールドを除外するには、ModelForm の Meta クラスで実行できます

フィールド値を事前に設定するには、ビューで次のようにします。

if request.method == 'POST':
        form = MarkForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.page = myid
            obj.save()
于 2012-07-19T15:10:30.583 に答える