Django sitemaps.xml ve robots.txt

merhaba, sitemaps.xml ve robots.txt dosyalarını nasıl oluşturabilirim, bana bunu öğretebilecek bir kişi veya kaynak var mıdır?

sitemapsi 2 hafta sonra yapabildim ancak bu sefer de google botu sitemapsi görmüyor robots txt dosyasını nasıl yapabilirim?

robots.txt dosyası oluştur

Sitemap:https://www.site.com/sitemap.xml

User-agent: *
Disallow: /admin/

urls.py (settings.py dosyasının olduğu klasördeki urls dosyası)

path('robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain"), name="robots_file"),

“message”: “Undefined variable ‘TemplateView’”,
bu şekilde bir hata alıyorum

github adresim; https://github.com/shoxer7/ruyablogapp.git
buradan bakıp tekrar yardımcı olma şansınız var mıdır?
template klasörünün içinde sitemaps ve robots var ancak doğru yerde mi ondan da emin değilim

edit: zamanım olursa github üzerinden düzenlerim dene bi sen

sitemap dosyasını sen oluşturmayacaksın
sadece templates klasöründe o robots.txt olacak sitemap.xml yi sil
daha sonra herhangi bir app’nin içerisinde
sitemaps.py adında dosya oluştur buradaki benim dosyam
from post.models import * ( bu kısma sitemapa eklemek istediğin modelleri import et)

bu kodda class PostSitemap ismini kendim verdim

https://www.sitemaps.org/tr/protocol.html
changefreq priority protocol gibi şeylerin anlamlarına buradan ulabilirsin
faka genellikle böyledir
def items sitemaptaki itemleri verir lastmod son değişklik tarihi yani ekleme tarihi

class PostSitemap(Sitemap):
    changefreq = "never"
    priority = 0.5
    protocol = "https"

def items(self):
    return Post.objects.published()

def lastmod(self, obj):
    return obj.created_date

kodlar

from django.contrib.sitemaps import Sitemap
from datetime import datetime
from post.models import *
from django.utils.functional import lazy




class NewsSitemap(Sitemap): #blog yazıları
changefreq = "weekly"
priority = "0.5"
location= "/news"
protocol = "https"


def items(self):
    return [self]


class HomePageSitemap(Sitemap): #anasayfayıda ekliyorum sitemapa
changefreq = "daily"
priority = "1"
location= ""
protocol = "https"

def items(self):
    return [self]





class PostSitemap(Sitemap):
changefreq = "never"
priority = 0.5
protocol = "https"

def items(self):
    return Post.objects.published()

def lastmod(self, obj):
    return obj.created_date

daha sonra settings.py dosyasının olduğu urls.py dosyasında böyle düzenleyebilirsin
sonunda sitemap dosyan böyle olacak
blog yazıları site.com/sitemap-blogyazilari.xml
rüya tabirleri site.com/sitemap-ruyatabirleri.xml gibisinden
yani sen kendin oluşturmayacaksın dinamik olarak kendisi oluşturacak

<sitemap>

<loc>https://www.site.com/sitemap-news.xml</loc>

</sitemap>

<sitemap>

<loc>https://www.site.com/sitemap-homepage.xml</loc>

</sitemap>

urls.py kodlar

from django.contrib.sitemaps.views import sitemap
from django.views.generic import TemplateView
from django.views.decorators.cache import cache_page
from django.contrib.sitemaps import views as sitemaps_views
from post import views
sitemaps={
    'news':PostSitemap,
    'categories':CategorySitemap, #sitemaps.pydeki isimler PostSitemap  falan
     # ve dahası var ise...
}




urlpatterns = [
    path('admin/', admin.site.urls),
    path('robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain"), name="robots_file"),
    path('sitemap.xml',
         cache_page(86400)(sitemaps_views.index),
         {'sitemaps': sitemaps, 'sitemap_url_name': 'sitemaps'}),
    path('sitemap-<section>.xml',
         cache_page(86400)(sitemaps_views.sitemap),
         {'sitemaps': sitemaps}, name='sitemaps'),
    path(...#benim kendi özel pathlarım
    path(...

]

üstad dediklerini uygulamaya çalıştım ancak hata alıp ilerleyemiyorum, ayrıca hangi kodu tam olarak nereye yazacağımı ayrıştıramadım. sitemap protokollerini öğrendim teşekkür ediyorum. Eğer vaktiniz olursa düzenleme şansınız var mıdır? ben işin içinden pek çıkamadım çünkü, yaklaşık 8 kere denedim biraz daha deneyeceğim ama kaçırdığım çok yer var sanırım. Amacım rüyatabiri olan appin içinde sitemaps.py dosyası yapıp çalıştırmaktı ancak beceremedim malesef.