小编sch*_*tte的帖子

django admin 相关字段查找无效:​​ icontains

我得到了这些模型:

@python_2_unicode_compatible
class Media(models.Model):
  the_image   = FilerImageField(null=True)
  title       = models.CharField(verbose_name="Title", max_length=255, null=True, blank=True)
  alt_text    = models.CharField(verbose_name="Alt Text", max_length=255, null=True, blank=True)

  created     = models.DateTimeField(default=now)
  modified    = models.DateTimeField(editable=True, auto_now=True)

  product_image_gallery   = models.ForeignKey('Product', related_name="product_image_gallery", null=True, blank=True, verbose_name="Product's Image Gallery")

  def __str__(self):
     return self.the_image.__str__()

@python_2_unicode_compatible
class Product( models.Model ):
  name    = models.CharField(verbose_name="Name", max_length=255)
  slug    = models.SlugField(verbose_name="Slug", max_length=255, unique=True)
  price       = models.PositiveIntegerField(verbose_name='Price', null=True, blank=True)
  sale_price  = models.PositiveIntegerField(verbose_name="Sale Price", null=True, blank=True)
  sku = models.CharField(verbose_name="SKU", max_length=255)

  def __str__(self):
    return "%s" % (self.sku, )
Run Code Online (Sandbox Code Playgroud)

我有这些管理对象:

class Media_Admin(admin.ModelAdmin):
  search_fields …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin

8
推荐指数
1
解决办法
1万
查看次数

Django:合并迁移冲突的最佳方法

我目前在开发部门工作,有一天我需要将其合并。目前,我的dev分支上最多有20个迁移文件,而master上现在大约有相同数量。我需要在两个分支上进行迁移,这将导致迁移具有相同的前缀,

(例如0003_auto

换句话说,如果您makemigrations使用相同的前缀生成了迁移文件,那么最好的/安全的处理方法是什么。

这是我弄清楚自己的两种方法(可能完全错误):

  1. 删除所有迁移文件,将这些代码合并,然后运行一个新的makemigrationsmigrate这将导致只有一个迁移文件。

  2. 使用该--merge标志让django进行合并:

    makemigrations --merge
    
    Run Code Online (Sandbox Code Playgroud)

现在,了解了所有这些之后,我想知道什么是处理此问题的最佳方法。通常,应该使用哪种方法才能正确合并冲突,并在每次模型更新时为我提供新的项目版本。

编辑

我认为提供逐步解决方案对于我和将来的用户来说是理想的选择,因为存在关于该主题的大量信息,但似乎没有一个简洁明了。

python django django-migrations

8
推荐指数
2
解决办法
3141
查看次数

Python:理解字典视图对象

我一直在试图理解内置视图对象被退回.items().values().keys()在Python 3或类似的.viewitems().viewvalues().viewkeys()。关于该主题还有其他线程,但没有一个(甚至doc)似乎描述了它们在内部是如何工作的。

listPython 2 中返回的类型副本相比,这里的主要收益似乎是高效的。经常将窗口与字典项进行比较(如在此线程中)。

但是那个窗口是什么,为什么它更有效?

我唯一能看到的是,视图对象似乎是 类似集合的对象,对于成员资格测试来说,它们通常更快。但这是唯一的因素吗?

代码示例

>>> example_dict = {'test':'test'}
>>> example_dict.items()
dict_items([('test', 'test')])
>>> type(example_dict.items())
<class 'dict_items'>
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是关于这dict_items门课的。这在内部如何运作?

python dictionary dictview

7
推荐指数
2
解决办法
4463
查看次数

为什么切片表达式会生成该输出

我懂了:

#slicing: [start:end:step]
s = 'I am not the Messiah'
#s[0::-1] = 'I'
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下

start=0, end=0, step=-1
Run Code Online (Sandbox Code Playgroud)

为什么是

s[0::-1] == 'I'
>>>> True
Run Code Online (Sandbox Code Playgroud)

python slice

6
推荐指数
1
解决办法
62
查看次数

给定周长中包含的最大点数

给定一些点的坐标数组以及固定周长的绳索,我该如何计算该绳索可以包围的最大点数?(我的意思是除蛮力之外的算法)

例如:给定[[0,1],[0,0],[1,1],[1,0],[100,100]]长度为4的绳索,则该绳索可以围住前4个点。

algorithm computational-geometry

5
推荐指数
1
解决办法
1209
查看次数

Django:1215,在只有一个字段的模型上“无法添加外键约束”

我有一个Salad模型:

class Salad(models.Model):
    some_field = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True)
Run Code Online (Sandbox Code Playgroud)

无论我如何称呼类、单个字段、使用什么模型代替Profile,或者on_delete我选择的任何选项。我系统地得到错误:

django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')

错误日志:

Traceback (most recent call last):
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
  Applying playerdata.0053_auto_20180724_1943...    return self.cursor.execute(sql, params)
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
    res = self._query(query)
  File "C:\Users\Div-o\AppData\Local\Programs\Python\Python35-32\lib\site-packages\MySQLdb\cursors.py", line 411, in _query …
Run Code Online (Sandbox Code Playgroud)

mysql django django-models django-migrations

5
推荐指数
1
解决办法
2505
查看次数

在Python中使用类定义调用实例方法

最近,我一直在研究 Python 的类实例化过程,以真正了解创建类实例时幕后发生的情况。但是,在玩测试代码时,我遇到了一些我不明白的事情。

考虑这个虚拟类

class Foo():

    def test(self):
        print("I'm using test()")
Run Code Online (Sandbox Code Playgroud)

通常,如果我想使用Foo.test 实例方法,我会创建一个实例Foo并显式调用它,如下所示,

foo_inst = Foo()
foo_inst.test()
>>>> I'm using test()
Run Code Online (Sandbox Code Playgroud)

但是,我发现这样调用最终会得到相同的结果,

Foo.test(Foo)
>>>> I'm using test()
Run Code Online (Sandbox Code Playgroud)

这里我实际上并没有创建实例,但我仍然在访问 的Foo实例方法。为什么以及如何在 Python 环境中工作?我的意思self是通常指类的当前实例,但在这种情况下,从技术上讲我并没有创建类实例。

print(Foo()) #This is a Foo object
>>>><__main__.Foo object at ...>
print(Foo) #This is not
>>>> <class '__main__.Foo'>
Run Code Online (Sandbox Code Playgroud)

python class instance-methods

5
推荐指数
1
解决办法
1471
查看次数

从Git重新恢复 - 在Eclipse中使用硬件

我不小心对我的git repo做了些什么,我不知道我是否可以保存我的项目......

我做了一些改变.然后我想删除我的最后一次提交,以便我可以改为进行新的提交.我忘了做git stash.因此,当我跑步时,git reset --hard [second-to-last commit]它删除了我所做的一切.这是愚蠢的,但有什么我可以做的来拯救我最近的工作?

我正在使用Eclipse IDE.

eclipse git commit git-reset

5
推荐指数
1
解决办法
371
查看次数

用Python中另一个列表中的项目替换满足某些条件的列表元素

假设我有两个清单

a=[0,1,6,4,2,8] 
b=[10,20,30,40]
Run Code Online (Sandbox Code Playgroud)

我想用列表b中的项目替换列表a中介于0和4之间的元素。

换句话说,我的输出应该是

[10,20,6,30,40,8]
Run Code Online (Sandbox Code Playgroud)

请注意,从本质上讲,我们剥离a了满足特定条件的元素列表,并简单地将其替换为列表b中的一项。(b中的顺序保持不变)

编辑

我实际上知道列表中恰好有N个项目a满足条件。然后,我需要用另一个大小为N的列表b“替换”这些位置。

python

5
推荐指数
2
解决办法
565
查看次数

堆叠内联和表格内联之间的差异

这是 来自django.db导入模型的models.py文件

# Create your models here.
class Item(models.Model):
    name=models.CharField(max_length=250)
    description = model.TextField()

    class Meta:
        oredering['name']
    def __unicode__(self):
        return self.name
    @permalink
    def get_absolute_url:
        retun ('item_detail',None,{'object_id':self_id})
class Photo(models.Model):
    item = models.ForiegnKey(Item)
    title=models.ChaField(max_length=250)

    image=models.IMageField(upload_to='photos')
    caption=models.TextField(blank=True)

    class Meta:
        ordering=['title']
    def __unicode__(self):
        return self.title
    @permalink
    def get_absolute_url(self):
        retun ('photo_detail',None,{'object_id':self_id})
Run Code Online (Sandbox Code Playgroud)

这是我的admin.py:

from django.contrib import admin
from  models import Item
from  models import Photo

# Register your models here.
class PhotoInline(admin.StackedInline):
    model = Photo

class ItemAdmin(admin.ModelAdmin):
    inlines = [PhotoInline]

admin.site.register(Item, ItemAdmin)
admin.site.register(Photo) …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin django-admin-actions

4
推荐指数
2
解决办法
2731
查看次数