0

CommaSeparatedIntegerField を持つモデルを作成しました

models.py

class ForumPosts(models.Model):

    ....
    path = models.CommaSeparatedIntegerField(blank=True,max_length=50)
    ...

このモデルを使用したいので、ビューを以下のように定義し ましたviews.py

def create_forum_post(request, ..):

    ...
    forumpost.path.append(forumpost_id)
    ...

CommaSeperatedIntegerField として定義されたパスに整数である forumpost_id を追加しなければならない状況に遭遇しました。デバッグ中にエラーが発生しました

「unicode」オブジェクトには属性「append」がありません。

カンマがないために、同じコードの多くのバリエーションを試しましたが、forumpost_id をパスに追加できなかったことが原因である可能性があると思います。前もって感謝します

4

1 に答える 1

0

CommaSeparatedIntegerFieldの値は自動的に逆シリアル化されません。このフィールド タイプの唯一の機能は検証です (カンマ区切りの整数でなければなりません)。

フィールド値を取得し、逆シリアル化し、新しい整数を追加し、シリアル化して保存する必要があります。

編集1:

例:

class ForumPosts(models.Model):
    # ...

    def append_to_path(self, value):
        path_list = self.path.split(',')
        path_list.append(value)
        self.path = ','.join(path_list)

使用法:

forumpost.append_to_path(forumpost_id)
forumpost.save() # save will validate if the path is correct
于 2013-09-24T18:46:17.893 に答える