2

タグがいつ誰によって作成されたかを追跡する必要があるため、django-taggit を使用してカスタムタグモデルを作成しました

class Topics(TagBase):
    featured = models.BooleanField(_('Featured'), default=False)

    created = models.DateTimeField(_('Creation date'), auto_now_add=True, editable=False)
    created_by = models.ForeignKey(User, related_name="topic_created_by")


class ArticleTopic(ItemBase):
    content_object = models.ForeignKey('Article')
    tag = models.ForeignKey(Topics, related_name="topic_items")


class Article(models.Model):   
    title = models.CharField(_('Title'), max_length=255)

    excerpt = models.TextField(_('Excerpt'))
    content = models.TextField(_('Content'), blank=True)

    topics = TaggableManager(through=ArticleTopic)

    created = models.DateTimeField(_('Creation date'), auto_now_add=True, editable=False)
    created_by = models.ForeignKey(User, related_name="article_created_by")

私は django-autocomplete-light を使用して、管理者のトピックのオートコンプリート フィールドを作成しています。新しいトピックを入力すると、Article フォームの保存時に作成されます。

admin フォームで request.user を取得し、それを save_model メソッドを介して渡すことができることはわかっていますが、これは Article モデルに対して行っていることですが、トピック モデルに対して行う方法がわかりません。

前もって感謝します

4

1 に答える 1

2

私は同様の問題に遭遇し、この機能を追加するために django-taggit をフォークしました: https://github.com/professorplumb/django-taggit

次のようにカスタム スルーまたはタグ モデルの属性を追加します。

article.topics.add('topic1', 'topic2', created_by=request.user)
于 2014-03-11T06:49:41.867 に答える