Как отправить карту сайта с более чем одной моделью

У меня в приложении 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')
]
Вернуться на верх