Я пытаюсь сделать окно, где какой-то текст будет отображаться на одном языке, при нажатии появится второй язык. Я создал одну модель, которая содержит каждую информацию о публикации.
model.py
from django.db import models
from datetime import datetime
from django.contrib.auth.models import User
def get_default_user():
return User.objects.get(id=1)
class EveryPost(models.Model):
title_pl = models.CharField(max_length=100, blank=True)
title_ru = models.CharField(max_length=100, blank=True)
text_pl = models.TextField(blank=True)
text_ru = models.TextField(blank=True)
date = models.DateTimeField(default=datetime.now, blank=True)
User = models.ForeignKey(User, on_delete=models.CASCADE, default=get_default_user)
def __str__(self):
return self.title_pl
html
{% for obj in EveryPost %}
<div class="card text-center">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item">
<a class="nav-link nav-main" href="{% url 'rupl' obj.pk %}">PL</a>
</li>
<li class="nav-item">
<a class="nav-link nav-main" href="{% url 'plru' obj.pk %}">RU</a>
</li>
</ul>
</div>
<div class="card-body">
<h5 class="card-title"><a href="{% url 'detailpost' obj.pk %}">{{ obj.title_pl }}</a></h5>
<p class="card-text">{{ obj.text_pl|truncatechars:350 }}</p>
<a href="{% url 'detailpost' obj.pk %}" class="btn btn-dark float-right">Zobacz </a>
</div>
<div class="card-footer text-muted">
<span class="float-left">{{ obj.date|date:"d M y" }}</span>
<span class="float-right">Przesłane przez: {{ obj.User }}</span>
</div>
</div>
{% endfor %}
Я пытался переключиться между text_pl и text_ru, но это не очень хорошая идея (потерянные данные)
views.py
def plru(request, pk):
post = EveryPost.objects.get(pk=pk)
post.text_pl = post.text_ru
post.title_pl = post.title_ru
post.save()
return redirect('index')
def rupl(request, pk):
post = EveryPost.objects.get(pk=pk)
post.text_ru = post.text_pl
post.title_ru = post.title_pl
post.save()
return redirect('index')
Изображение, объясняющее, чего я хочу достичь