Python 以10为基数的int()的文本无效:';创建#u属性';
使用django视图时出现此错误。我有两个模型;所有者和财产。所有者可以有许多属性。模型如下:Python 以10为基数的int()的文本无效:';创建#u属性';,python,django,Python,Django,使用django视图时出现此错误。我有两个模型;所有者和财产。所有者可以有许多属性。模型如下: class Owner(models.Model): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) trading_name = models.CharField(max_length=100) phone = models.CharF
class Owner(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
trading_name = models.CharField(max_length=100)
phone = models.CharField(max_length=50)
email = models.EmailField(unique=True)
address = models.CharField(max_length=200)
def __str__(self):
return self.trading_name
class Property(models.Model):
STYLE_CHOICES = [('Apart','Apartment'),
('Bung','Bungalow'),
('Mans','Mansionnete'),
('Comm','Commercial'),
]
name = models.CharField(max_length=100)
owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
style = models.CharField(max_length=100, choices=STYLE_CHOICES)
bedrooms = models.IntegerField()
bathrooms = models.IntegerField()
parking = models.BooleanField(default=True)
sqft = models.IntegerField()
address = models.CharField(max_length=200)
description = models.TextField(blank=True)
image = models.ImageField(upload_to='photos/%Y/%m/%d', blank=True)
def __str__(self):
return self.name
我的看法是:
def CreatePropertyView(request):
if request.method == "POST":
form = PropertyForm(request.POST)
print(request.POST)
if form.is_valid():
property = form.save(commit=False)
property.save()
return redirect(reverse('properties'))
return render(request, 'property_agency/property_form.html', {'form': PropertyForm(request.POST or None)})
def PropertyListView(request):
properties = Property.objects.all()
context = {
'properties': properties
}
return render(request, 'property_agency/property_list.html', context=context)
def PropertyDetailView(request, property_id, *args, **kwargs):
property = Property.objects.get(pk=property_id)
units = PropertyUnit.objects.filter(property=property)
context = {
'property': property,
'units': units
}
return render(request, 'property_agency/property_detail.html', context=context)
url为“properties”的PropertyListView工作正常。此外,PropertyDetailView工作正常,但是当我转到“properties/create_property”时,它就崩溃了。堆栈跟踪突出显示以下行:
property = Property.objects.get(pk=property_id)
将我的PropertyDetailView作为带有问题的行。它是在搞乱了迁移之后开始的。我已尝试删除数据库并删除迁移,但仍然失败。有没有办法解决这个问题,谢谢
我的url配置:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')),
path('listings/', include('listings.urls')),
path('accounts/', include('accounts.urls')),
path('contacts/', include('contacts.urls')),
path('owners/', agency_views.OwnersListView, name='owners'),
path('owners/create_owner/', CreateOwnerView.as_view(), name='create_owner'),
path('owners/<owner_id>/', agency_views.OwnerDetailView, name='owner_detail'),
path('properties/', agency_views.PropertyListView, name='properties'),
path('properties/<property_id>/', agency_views.PropertyDetailView, name='property_detail'),
path('properties/create_property/', agency_views.CreatePropertyView, name='create_property'),
path('properties/create_unit/', agency_views.CreateUnitView, name='create_unit'),
path('tenants/', TenantListView.as_view(), name='tenants'),
path('tenants/create_tenant/', CreateTenantView.as_view(), name='create_tenant'),
path('realtors/', RealtorsListView.as_view(), name='realtors'),
path('realtors/create_realtor/', RealtorCreateView.as_view(), name='create_realtor'),
]
使用
path('properties/',agency_views.PropertyDetailView,name='property_detail'),
这样看起来像properties/abc/
的路径就不会被路由到propertydeailview
通常,您应该始终在没有尖括号的类似路径之后列出带尖括号的路径,因为Django选择第一个匹配的路由规则。使用
path('properties/',agency_views.PropertyDetailView,name='property_detail'),
这样看起来像properties/abc/
的路径就不会被路由到propertydeailview
一般来说,您应该总是在没有尖括号的类似路径之后列出带尖括号的路径,因为Django选择第一个匹配的路由规则。我想您应该调用URL。。。properties/create\u property/,它被上面的行捕获,并且“create\u property”用作 我认为您应该将其声明为int:
../<int:property_id>/
//
path('properties/',agency_views.PropertyDetailView,name='property_detail'),
路径('properties/create_property/',agency_views.CreatePropertyView,name='create_property'),
我想你应该给URL打个电话。。。properties/create\u property/,它被上面的行捕获,并且“create\u property”用作
我认为您应该将其声明为int:
../<int:property_id>/
//
path('properties/',agency_views.PropertyDetailView,name='property_detail'),
路径('properties/create_property/',agency_views.CreatePropertyView,name='create_property'),
很高兴听到这个消息。请通过按下向上/向下投票按钮下的复选标记接受我的回答,向站点和社区发出信号,表示您的问题已得到回答!很高兴听到这个消息。请通过按下向上/向下投票按钮下的复选标记接受我的回答,向站点和社区发出信号,表示您的问题已得到回答!
path('properties/<int:property_id>/', agency_views.PropertyDetailView, name='property_detail'),
../<int:property_id>/
path('properties/<property_id>/', agency_views.PropertyDetailView, name='property_detail'),
path('properties/create_property/', agency_views.CreatePropertyView, name='create_property'),