0

「リンク」モデルのフォームのフォームセットを使用してビューを作成しようとしています。問題は、各フォームで、作成済みのTargetLinkオブジェクトから選択するだけでなく、インラインで編集できるようにすることです。

class ClientUrl(models.Model):
    client = models.ForeignKey(UpstreamClientModel, null=True)
    url = models.URLField(unique=True, null=False)
    active = models.BooleanField(default=True)

    def __unicode__(self):
        return self.url

    class Meta:
        verbose_name = 'url'
        ordering = ['url']

KEYWORD_TYPES = (
    ('PN', 'Pending'),
    ('MN', 'Money'),
    ('BR', 'Brand'),
    ('LT', 'Long Tail'),
)

class ClientKeyword(models.Model):
    client = models.ForeignKey(UpstreamClientModel, null=True)
    kw_type = models.CharField('keyword type', max_length=2, 
                choices=KEYWORD_TYPES, default='LT')
    keyword = models.CharField(max_length=150, unique=False)
    directions = models.CharField(max_length=200, blank=True, 
            help_text='e.g: 25 chars, use "affordable rental cars"')

    def __unicode__(self):
        return self.keyword

    class Meta:
        ordering = ['keyword', ]
        unique_together = ('client', 'keyword')

class TargetLink(models.Model):
    keyword = models.ForeignKey(ClientKeyword, related_name='target_links')
    url = models.ForeignKey(ClientUrl, related_name='target_links')

    def __unicode__(self):
        return '{0}:{1}'.format(self.keyword, self.url)

class Link(models.Model):
    client = models.ForeignKey(UpstreamClientModel, related_name='links')
    target = models.ForeignKey(Target, related_name='links')
    user = models.ForeignKey(User, blank=True, null=True, related_name='links')
    link_type = models.ForeignKey(LinkType, related_name='links')
    site = models.ForeignKey(Site, blank=True, null=True, 
                related_name='links')
    site_url = models.URLField(blank=True, 
            help_text='leave blank until url is live')
    month = models.DateField(blank=True, null=True)
    target_links = models.ManyToManyField(TargetLink, related_name='links')

どうすればこれを達成できますか?

4

1 に答える 1

0

1 つの方法は、TargetLinks のフォームセットの外部にあるフォームを作成し、Knockout.js または別のクライアント側フレームワークを使用して、TargetLinks の更新された選択肢をフォームセットの target_links フィールドにプッシュすることです。

于 2013-02-15T14:23:23.120 に答える