Как отправить карту сайта с более чем одной моделью
У меня в приложении 6 моделей, необходимо предоставить все эти модели в файле sitemap.py, или я просто предоставлю только одну модель в файле sitemap.py? . На самом деле я не знаю, как работает эта карта сайта, и это мой первый раз, когда я предоставляю эти карты сайта в Google search console, не могли бы вы показать мне, как я отправляю эти модели в карту сайта в django?
мой файл sitemap.py:
from django.contrib.sitemaps import Sitemap
from .models import Category
class CategorySitemap(Sitemap):
def items(self):
return Category.objects.all()
мои модели:
class Category(models.Model):
name = models.CharField(max_length=100, blank=False, null=False)
def get_absolute_url(self):
return "/p/%i/" % self.id
def __str__(self):
return str(self.name)
class Question(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100, blank=False, null=False)
body = RichTextField(blank=False, null=False)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
slug = models.SlugField(unique=True, max_length=200)
def __str__(self):
return str(self.title)
class Answer(models.Model):
user = models.ForeignKey(User, blank=False, null=False, on_delete=models.CASCADE)
answer = RichTextField(blank=False, null=False)
post = models.ForeignKey(Question, blank=False, null=False, on_delete=models.CASCADE)
def __str__(self):
return str(self.user)
class Notification(models.Model):
is_read = models.BooleanField(default=False)
message = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
url = models.ForeignKey(Answer, on_delete=models.CASCADE)
def __str__(self):
return str(self.user)
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_image = CloudinaryField('image', blank=True, null=True, default='static/default.jpg')
stories = RichTextField(blank=True, null=True)
twitter = models.URLField(max_length=300, blank=True, null=True)
website = models.URLField(max_length=300,blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
location = models.CharField(max_length=80, blank=True, null=True)
slug = models.SlugField(unique=True, max_length=200)
def __str__(self):
return str(self.user)
class Like(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Answer, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.user)
мой файл urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('answer.urls')),
path('sitemap.xml', sitemap, {'sitemaps': {'category' : CategorySitemap}},
name='django.contrib.sitemaps.views.sitemap')
]