سلام.من میخام مدلمو مایگریت کنم. وقتی دستور makemigrations رو میزنم مشکلی پیش نمیاد ولی وقتی دستور ئmigrate رو میزنم ارور زیر رو میده:
return datetime.datetime.fromisoformat(value)
TypeError: fromisoformat: argument must be str
ممنون میشم راهنمایی کنید.
درود.
اول از همه ، کدی که برای مدل ها و ویو ها و url هاتون نوشتید رو به صورت کد، نه عکس اینجا بذارید
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
# Create your models here.
class Kharid(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
auther = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
class Meta:
ordering = ('-publish',)
def get_absolute_url(self):
return reverse('blog:kharid_detail', args=[self.publish.year, self.publish.month, self.publish.day,self.slug])
def __str__(self):
return self.title
class Ejare(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
subject = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
auther = models.ForeignKey(User, on_delete=models.CASCADE)
matn = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
class Meta:
ordering = ('-publish',)
def get_absolute_urll(self):
return reverse('blog:ejare_detail', args=[self.publish.year, self.publish.month, self.publish.day, self.slug])
def __str__(self):
return self.subject
class Zamin(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
subject2 = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
auther = models.ForeignKey(User, on_delete=models.CASCADE)
matn2 = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
class Meta:
ordering = ('-publish',)
def get_absolute_urllll(self):
return reverse('blog:zamin_detail', args=[self.publish.year, self.publish.month, self.publish.day, self.slug])
def __str__(self):
return self.subject2
class Mosharekat(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
subject3 = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
auther = models.ForeignKey(User, on_delete=models.CASCADE)
body2 = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
class Meta:
ordering = ('-publish',)
def get_absolute_urlll(self):
return reverse('blog:mosharekat_detail',args=[self.publish.year, self.publish.month, self.publish.day,self.slug])
def __str__(self):
return self.subject3
from django.urls import path
from .import views
app_name = 'blog'
urlpatterns = [
path('', views.index, name='index'),
path('kharid/', views.KharidList, name="kharid_list"),
path('ejare/',views.EjareList, name="ejare_list"),
path('mosharekat/', views.MosharekatList,name='mosharekat'),
path('zamin/', views.Zaminlist,name='zamin'),
path('ejare_detail/<int:year>/<int:month>/<int:day>/<slug:ejare>', views.ejaredetail, name="ejare_detail"),
path('kharid_detail/<int:year>/<int:month>/<int:day>/<slug:kharid>', views.khariddetail, name="kharid_detail"),
path('mosharekat_detail/<int:year>/<int:month>/<int:day>/<slug:mosharekat>', views.mosharekatdetail, name="mosharekat_detail"),
path('zamin_detail/<int:year>/<int:month>/<int:day>/<slug:zamin>', views.zamindetail,name="zamin_detail"),
]
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404,redirect
from .models import *
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
from django.views.generic.edit import CreateView
# Create your views here.
def index(request):
return render(request,'blog/post/index.html')
def KharidList(request):
kharids = Kharid.objects.filter(status="published")
paginator = Paginator(kharids, 3)
page = request.GET.get('page')
try:
kharids = paginator.page(page)
except PageNotAnInteger:
kharids = paginator.page(1)
except EmptyPage:
kharids = paginator.page(paginator.num_pages)
return render(request,"blog/post/list_kharid.html",{"kharids":kharids})
def khariddetail(request,year, month, day, kharid):
kharid = get_object_or_404(Kharid,status="published",publish__year=year, publish__month=month, publish__day=day, slug =kharid)
return render(request,"blog/post/kharid_detail.html", {"kharid":kharid})
def EjareList(request):
ejares = Ejare.objects.filter(status="published")
paginator = Paginator(ejares, 2)
page = request.GET.get('page')
try:
ejares = paginator.page(page)
except PageNotAnInteger:
ejares = paginator.page(1)
except EmptyPage:
ejares = paginator.page(paginator.num_pages)
return render(request, "blog/post/list_ejare.html",{"ejares":ejares})
def ejaredetail(request,year, month, day, ejare):
ejare = get_object_or_404(Ejare,status="published",publish__year=year, publish__month=month, publish__day=day, slug = ejare)
return render(request,"blog/post/ejare_detail.html", {"ejare":ejare})
def MosharekatList(request):
mosharekats = Mosharekat.objects.filter(status="published")
paginator = Paginator(mosharekats, 2)
page = request.GET.get('page')
try:
mosharekats = paginator.page(page)
except PageNotAnInteger:
mosharekats = paginator.page(1)
except EmptyPage:
mosharekats = paginator.page(paginator.num_pages)
return render(request, "blog/post/mosharekat.html",{"mosharekats":mosharekats})
def mosharekatdetail(request,year, month, day, mosharekat):
mosharekat = get_object_or_404(Mosharekat,status="published",publish__year=year, publish__month=month, publish__day=day, slug =mosharekat)
return render(request,"blog/post/mosharekat_detail.html", {"mosharekat":mosharekat})
def Zaminlist(request):
zamins = Zamin.objects.filter(status="published")
paginator = Paginator(zamins, 2)
page = request.GET.get('page')
try:
zamins = paginator.page(page)
except PageNotAnInteger:
zamins = paginator.page(1)
except EmptyPage:
zamins = paginator.page(paginator.num_pages)
return render(request,"blog/post/zamin.html",{"zamins":zamins})
def zamindetail(request,year, month, day, zamin):
zamin = get_object_or_404(Zamin,status="published",publish__year=year, publish__month=month, publish__day=day, slug = zamin)
return render(request,"blog/post/zamin_detail.html", {"zamin":zamin})
به نظرم الان تمام فایل های مایگریشن رو توی پوشه اش؛ بجز init که مهم هست رو پاک کنید.
یه بار از دستور python manage.py migrate appname zero
استفاده کنید تا مایگریشن ها پاک شن. توی اپ نیم، اسم اپ تون رو بنویسید.
بعد از اون، کاری که خودم معمولا میکنم و دقیقا زمان هایی که نمیکنم به ارور مایگریشن میخورم، اینه که مدل ها رو دونه دونه مایگریت کنید.
یعنی اول مدیر اجاره رو بذارید، بقیه رو کامنت کنید، اون رو مایگرت کنید. وقتی مشکلی نداشت برید بعدی. مدل هاتون زیاد نیست خیلی سریع میتونید این کارو بکنید.
هی یه مدل رو از کامنت در میارید، مایگرت میکنید و بعد مدل بعدی.
این دستوری که نوشتم مایگرت های اون اپ رو کامل پاک میکنه پس لازمه هم میک مایگریشنز رو بزنید هم مایگرت.
این کار رو بکنید تا الان متوجه بشید ایراد از کدوم مدل عه همینطوری فهمیدنش سخته
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟