2017-08-17 8 views
1

私はdjango-cmsを使用しています プラグインを追加するか更新するときに多くのフィールドがうまくいきますが、 のページを公開した後は何もデータを取得できませんでした。manytomanyフィールドが動作しないdjango-cms

モデルは、私がdjagno-CMSページを公開するとき、フィールド「client_logoは」(django-cms models manualを参照)

+0

[インスタンス関連の\ _set戻るを空のリストをプラグインDjangoのCMS]の可能な重複(https://stackoverflow.com/questions/19778911/django-cms-plugin-instance-related-set-returns-empty-リスト) – mch

答えて

1

関係が明示的にcopy_relations方法でコピーする必要がdisapperなり、ここでこの

@python_2_unicode_compatible 
class ClientLogo(CMSPlugin): 
    client_logo = models.ManyToManyField(LogoPluginModel, blank=True) 

class LogoPluginModel(CMSPlugin): 
    title = models.CharField(max_length=100) 

のようになります。 ManyToManyFieldにrelated_nameプロパティを追加すると、特にモデルに複数の外部キーセットが含まれている場合や、ManyToManyFieldsが含まれている場合に特に便利です。

@python_2_unicode_compatible 
class ClientLogo(CMSPlugin): 
    client_logo = models.ManyToManyField(
    LogoPluginModel, 
    blank=True, 
    related_name='client_logos', 
) 


class LogoPluginModel(CMSPlugin): 
    title = models.CharField(max_length=100) 

    def copy_relations(self, oldinstance): 
    self.client_logos.all().delete() 
    for logo in oldinstance.client_logos.all(): 
     logo.pk = None 
     logo.showroom = self 
     logo.save() 
関連する問題