Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Създавам нов модел Image в който дефинираме image_url. Мога да добавя и допълнителна логика за снимката, като created-at, modified_at, size и др. В модела Place добавяме image, което е свързано с модела Image чрез ForeignKey. Изтриваме image-url от Place.
- from django.db import models
- from django.contrib.auth import get_user_model
- UserModel = get_user_model()
- class Image(models.Model):
- image_url = models.URLField(
- unique=True,
- default="https://...",
- error_messages={
- 'unique': "This image URL is already in use! Provide a new one."
- }
- )
- # Можете да добавите още полета според нуждите си, като например поле за описание на изображението или за категорията му.
- class Place(models.Model):
- RATING_CHOICES = [
- (1, '1 Star'),
- (2, '2 Stars'),
- (3, '3 Stars'),
- (4, '4 Stars'),
- (5, '5 Stars'),
- ]
- CATEGORY_CHOICES = [
- ('Mountain', 'Mountain'),
- ('Sea', 'Sea'),
- ('Historical Site', 'Historical Site'),
- ('City', 'City'),
- ('Spa', 'Spa'),
- ('Wine Tourism', 'Wine Tourism')
- ]
- name = models.CharField(
- max_length=200,
- null=False,
- blank=False,
- )
- description = models.TextField(
- null=False,
- blank=False,
- )
- location = models.CharField(
- max_length=200,
- null=False,
- blank=False,
- )
- rating = models.IntegerField(
- choices=RATING_CHOICES,
- null=True,
- blank=True,
- )
- category = models.CharField(max_length=100, choices=CATEGORY_CHOICES, null=True, blank=True)
- user = models.ForeignKey(UserModel, on_delete=models.RESTRICT)
- image = models.ForeignKey(Image, on_delete=models.CASCADE, null=True, blank=True)
- 2. Променяме формата, като заменяме полето image-url с image.
- from django import forms
- from my_holiday.destination.models import Place
- class PlaceBaseForm(forms.ModelForm):
- class Meta:
- model = Place
- fields = ['name', 'description', 'location', 'rating', 'image', 'category',]
- class PlaceCreateForm(PlaceBaseForm):
- pass
- class PlaceDetailsForm(PlaceBaseForm):
- pass
- class PlaceEditForm(PlaceBaseForm):
- pass
- НЕ СЪМ СИГУРЕН ДАЛИ ЩЕ РАБОТИ ЗАТОВА ЩЕ ТЕСТВАМ В КОПИЕ НА ПРОЕКТА ВЪРЗАН КЪМ НОВА БАЗА.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement