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

一种方法可能是在 TargetLinks 的表单集之外创建一个表单,并使用 Knockout.js 或其他客户端框架将 TargetLinks 的更新选项推送到表单集中的 target_links 字段。

于 2013-02-15T14:23:23.120 回答