如何解决预填充字段拒绝在服务器DO上托管的Django项目中工作
models.py
class Product(models.Model):
category = TreeManyToManyField(ProductCategory,blank=True,symmetrical=False,related_name='products',verbose_name='Категория')
status = models.ForeignKey(ProductStatus,default=None,null=True,on_delete=models.CASCADE,verbose_name='Статус')
name = models.CharField(max_length=200,db_index=True,verbose_name='Наименование товара')
slug = models.SlugField(max_length=200,verbose_name='Уникальная строка')
...
code = models.CharField(max_length=6,verbose_name='Код товара',help_text='Код товара должен быть 6-значным')
vendor_code = models.CharField(max_length=6,verbose_name='Артикул')
...
admin.py
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
save_as = True
inlines = [ProductDetailInline]
fields = ['category',('name','slug'),('code','vendor_code'),'memory','status',('hot_deal','as_new','recommended','hot_sales'),('price','discount'),'image','description','available','is_active',('created','updated')]
prepopulated_fields = {'slug': ('name',),'vendor_code': ('code',)}
...
在本地项目上一切正常,但通过将项目放置在服务器DigitalOcean上,prepopulated_fields无法正常工作。恐怕建议这可能是由于static_prod中的js文件引起的。
解决方法
问题出在默认目录中的js文件中:
- static_prod / admin / js / change_form.js :( grp.jQuery)更改为(django.jQuery)
- static_prod / admin / js / prepopulated_init.js :( grp.jQuery)更改为(django.jQuery)
在这种情况下,请不要忘记文件的路径在我的项目中。您可能有所不同,但是问题出在这些js文件上。