Я хочу сделать кнопку в django интерактивной, когда продукт является бесплатным или премиальным
Я хочу сделать кнопку в django интерактивной в случае, когда категория продукта бесплатна, я хочу, чтобы кнопка показывала "скачать", но если продукт премиум, пусть кнопка будет "Подписаться". Я не очень понимаю, как все это подключить, используя ORM, любая помощь будет признательна. Позвольте мне показать некоторый код
models.py
class Package_Category(models.Model):
title = models.CharField(max_length=10000, verbose_name="Title")
slug = models.SlugField(max_length=1000, unique=True)
def get_absolute_url(self):
return reverse("package-categories", args=[self.slug])
def __str__(self):
return self.title
class Vectors(models.Model):
title = models.CharField(max_length=10000, null=True, blank=True, verbose_name="Title")
slug = models.SlugField(unique=True)
image = models.ImageField(upload_to="vectors-images/%Y/%m/%d/", default="default.jpg", verbose_name="Image Cover")
vec_file = models.FileField(upload_to='vector-uploads/%Y/%m/%d/', null=True, blank=True, verbose_name="Upload File")
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, verbose_name="Category")
package_category = models.ForeignKey(Package_Category, on_delete=models.DO_NOTHING, verbose_name="Package Category")
file_format = models.ForeignKey(Format, on_delete=models.SET_NULL, null=True, blank=True)
tags = models.ForeignKey(Tag, on_delete=models.DO_NOTHING, verbose_name="Tag")
status = models.CharField(choices=STATUS_CHOICE, default="published", max_length=150, verbose_name='Status')
creator = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="Creator")
# creator_image = models.ImageField(upload_to="creators-images/%Y/%m/%d/", default="default.jpg", verbose_name="Creator Image")
# creator_bio = models.CharField(max_length=10000, null=True, blank=True, verbose_name="Creator Bio", default="Graphics Designer")
created = models.DateTimeField(auto_now_add=True, verbose_name="Created")
class Meta:
verbose_name = "Vector"
verbose_name_plural = "Vectors"
def get_absolute_url(self):
return reverse("elements:vector-details", args=[self.slug])
def __str__(self):
return self.title
views.py, если необходимо
def VectorDetails(request, vectors_slug):
vector = get_object_or_404(Vectors, slug=vectors_slug)
vectors = Vectors.objects.filter(status='published').order_by('?')[:6]
creators = Profile.objects.filter(creator=True)
categories = Category.objects.all()
info = Announcements.objects.all()
# creator = Profile.get_object_or_404(pk=pk)
context = {
'categories': categories,
'info': info,
'vector': vector,
'vectors': vectors,
'creators':creators
}
return render(request, 'vector-details.html', context)
vector-details.html
<ul>
{% if vector.package_category == 'Free' %}
<button class="full btn" style="padding: 15px 150px; background:linear-gradient(230deg, rgb(255, 0, 157) 0%, rgb(111, 0, 255) 100%);" onclick="location.href='{% url 'elements:download-success' %}' " ><a class="liks gree_button" href="{{vector.vec_file.url}}" download="{{vector.vec_file.url}}">Download</a></button>
{% else %}
<button class="full btn" style="padding: 15px 150px; background:linear-gradient(230deg, rgb(255, 0, 157) 0%, rgb(111, 0, 255) 100%);" onclick="location.href='{% url 'elements:download-success' %}' " ><a class="liks gree_button" href="{{vector.vec_file.url}}" download="{{vector.vec_file.url}}">Subscribe</a></button>
{% endif %}
</ul>
Пожалуйста, если что-то понадобится снова, я бы предоставил как можно скорее. Это действительно срочно, и я застрял сейчас