我得到了这些模型:
@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) 我目前在开发部门工作,有一天我需要将其合并。目前,我的dev分支上最多有20个迁移文件,而master上现在大约有相同数量。我需要在两个分支上进行迁移,这将导致迁移具有相同的前缀,
(例如0003_auto)
换句话说,如果您makemigrations使用相同的前缀生成了迁移文件,那么最好的/安全的处理方法是什么。
这是我弄清楚自己的两种方法(可能完全错误):
删除所有迁移文件,将这些代码合并,然后运行一个新的makemigrations和migrate这将导致只有一个迁移文件。
使用该--merge标志让django进行合并:
makemigrations --merge
Run Code Online (Sandbox Code Playgroud)现在,了解了所有这些之后,我想知道什么是处理此问题的最佳方法。通常,应该使用哪种方法才能正确合并冲突,并在每次模型更新时为我提供新的项目版本。
编辑
我认为提供逐步解决方案对于我和将来的用户来说是理想的选择,因为存在关于该主题的大量信息,但似乎没有一个简洁明了。
我一直在试图理解内置视图对象被退回.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门课的。这在内部如何运作?
我懂了:
#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) 给定一些点的坐标数组以及固定周长的绳索,我该如何计算该绳索可以包围的最大点数?(我的意思是除蛮力之外的算法)
例如:给定[[0,1],[0,0],[1,1],[1,0],[100,100]]长度为4的绳索,则该绳索可以围住前4个点。
我有一个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) 最近,我一直在研究 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) 我不小心对我的git repo做了些什么,我不知道我是否可以保存我的项目......
我做了一些改变.然后我想删除我的最后一次提交,以便我可以改为进行新的提交.我忘了做git stash.因此,当我跑步时,git reset --hard [second-to-last commit]它删除了我所做的一切.这是愚蠢的,但有什么我可以做的来拯救我最近的工作?
我正在使用Eclipse IDE.
假设我有两个清单
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“替换”这些位置。
这是
来自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)