На самом деле, я новичок в мире Django-cms. Я попробовал почти каждый дубликат этого же вопроса, но ни один из них не сработал. Я создал свой собственный плагин только с одним ManyToManyField ().
Я прошел через Django-docs. Относился ко многим или многим, или связывал внешние ключи с другими объектами, но это не помогло. Может быть, я где-то потерялся, я бы очень признателен за любую помощь. Спасибо.
Try1 PluginModel:
class PortfolioPluginModel(CMSPlugin):
portfolio = models.ManyToManyField(Portfolio)
Try2 PluginModel:
class PortfolioPluginModel(CMSPlugin):
portfolio = models.ManyToManyField(Portfolio)
def copy_relations(self, oldinstance):
for p in oldinstance.portfolio.all():
p.pk = None
p.plugin = self
p.save()
Try3 PluginModel:
class PortfolioPluginModel(CMSPlugin):
portfolio = models.ManyToManyField(Portfolio)
def copy_relations(self, oldinstance):
self.portfolios = oldinstance.portfolios.all()
Приложения Модель:
class Portfolio(models.Model):
author = models.CharField(max_length = 100)
description = models.TextField()
image = models.ImageField(upload_to ='portfolioImage',blank = True, null = True)
published_at = models.DateTimeField(auto_now_add = True)
cms_plugins.py
@plugin_pool.register_plugin # register the plugin
class PortfolioPluginPublisher(CMSPluginBase):
model = PortfolioPluginModel # model where plugin data are saved
# model = Portfolio(CMSPlugin)
module = _("Portfolio")
name = _("Portfolio Plugin") # name of the plugin in the interface
render_template = "portfolio_cms_integration/portfolio_plugin.html"
cache = False
def render(self, context, instance, placeholder):
context.update({'instance': instance})
return context
portfolio_plugin.html
<div class="filters-content">
<div class="row grid">
{% for p in instance.portfolio.all %}
<div class="single-portfolio col-sm-4 all vector">
<div class="relative">
<div class="thumb">
<div class="overlay overlay-bg"></div>
<img class="image img-fluid" src="{{ p.image.url }}" alt="" style="width:399px; height: 400px;">
</div>
<a href="{{ p.image.url }}" class="img-pop-up">
<div class="middle">
<div class="text align-self-center d-flex"><img src="{% static 'img/preview.png' %}"
alt=""></div>
</div>
</a>
</div>
<div class="p-inner">
<h4>{{ p.author }}</h4>
<div class="cat">{{ p.description }}</div>
</div>
</div>
{% endfor %}
</div>
Ожидаемый результат: When I publish my post I should see my model objects of portfolio app
Фактическая мощность: When I publish my post I dont see any model objects of portfolio app