我正在尝试下面的python代码:
from abc import ABCMeta, abstractmethod
class Bar:
__metaclass__ = ABCMeta
@abstractmethod
def foo(self):
pass
class Bar2(Bar):
def foo2(self):
print("Foo2")
b = Bar()
b2 = Bar2()
Run Code Online (Sandbox Code Playgroud)
我认为@abstractmethod确保我的父类是抽象的,子类也是抽象的,因为它没有实现抽象方法.但是在这里,我没有尝试实例化这两个类的错误.
有谁能解释为什么?
我想request在save()方法中作为参数获取.
models.py
class Profile(models.Model):
uuid = UUIDField(auto=True)
user = models.ForeignKey(User)
name = models.CharField(max_length=128)
dob = models.DateField()
class Meta:
db_table = 'profile'
def save(self,*args,**kwargs):
if not self.pk:
self.user_id = 2 #here i need request.user instead of 2
super(Profile,self).save(*args,**kwargs)
Run Code Online (Sandbox Code Playgroud)
forms.py
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
exclude = ['uuid','user']
Run Code Online (Sandbox Code Playgroud)
views.py
def add(request):
profile_form = ProfileForm(request.POST)
profile_form.save()
Run Code Online (Sandbox Code Playgroud)
而不是2我想传递的价值request.user.我该怎么做.如果问题不正确,有人请更正问题.
我正在研究算法.练习包括放置2位数(10到99之间),然后添加两位数.我在python中创建它并且它可以工作,但是我的老师说有另一种方法可以在没有我正在使用的转换的情况下完成它.你能帮助我吗?有没有更好的办法?谢谢.
for i in range(5):
add = 0
num = input("Number: ")
num = int(num)
if num > 9 and num < 100:
num = str(num)
add = int(num[0]) + int(num[1])
print("The addition of the two digits is: " + str(add))
else:
print("It is not a two digit number.")
Run Code Online (Sandbox Code Playgroud) 注意:由于生产环境的限制,我必须坚持django-1.4到目前为止.
我刚刚做了一个测试,看看当ManyToMany改变时我是否可以挂钩事件.
我有一个Group包含几个Item对象的模型.每当项目在任何组中发生变化时,我都希望对相关的Group`实例做一些事情.
from django.db import models
from django.db.models.signals import m2m_changed, post_delete, pre_delete
class Item(models.Model):
name = models.CharField(max_length=32)
def __str__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=32)
items = models.ManyToManyField(to=Item)
def items_changed(signal, sender, action, instance, reverse, model, pk_set, using, **kwargs):
print str(signal)
print action, instance, reverse, pk_set
m2m_changed.connect(items_changed, sender=Group.items.through)
Run Code Online (Sandbox Code Playgroud)
如果我更改实例items上的列表Group,那么m2m_changed事件显然会被触发.
>>> from sandbox.core.models import Group, Item
>>> item, created = Item.objects.get_or_create(name='f')
>>> g = Group.objects.get(pk=1)
>>> g.items.add(item) …Run Code Online (Sandbox Code Playgroud) 我对Django和Python很陌生。我的环境是Win7和Python3.4。现在,按照Django官方网站中的教程构建一个Web应用程序。首先,一切工作都很好,并且输出都是预期的和正确的。但是今天,当我重新运行命令“ python manage.py runserver”时,它给了我非常奇怪的错误消息,如下所示。请帮助,非常感谢!
$ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 312, in execute
django.setup()
File "C:\Python34\lib\site-packages\django\__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Python34\lib\site-packages\django\apps\registry.py", line 115, in populate
app_config.ready()
File "C:\Python34\lib\site-packages\django\contrib\admin\apps.py", line 22, in ready
self.module.autodiscover()
File "C:\Python34\lib\site-packages\django\contrib\admin\__init__.py", line 24, in autodiscover
autodiscover_modules('admin', register_to=site)
File "C:\Python34\lib\site-packages\django\utils\module_loading.py", line 74, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return …Run Code Online (Sandbox Code Playgroud) class Orders(models.Model):
orderid = models.IntegerField(db_column='orderID', primary_key=True)
pickupdate = models.DateField(db_column='pickupDate', blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
我想显示模型中每个月的总记录。我找到的解决方案要求我输入年份
Orders.objects.filter(pickupdate__year = '2006').values_list('pickupdate__month').annotate(total = Count('orderid')
Run Code Online (Sandbox Code Playgroud)
上面queryset的结果是这样的:
<QuerySet [(1, 31), (2, 27), (3, 31), (4, 30), (5, 31), (6, 29), (7, 30), (8, 31), (9, 30), (10, 31), (11, 30),
(12, 31)]>
Run Code Online (Sandbox Code Playgroud)
我希望queryset能够从数据库自动获取每月范围,而无需将年份添加到queryset
我要显示的数据是这样的:
Month | Total
January 2007 | 1
February 2007| 2
etc
enter code here
Run Code Online (Sandbox Code Playgroud) 我正在使用内置函数为许多字段建立自动完成功能:https : //docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields
我有以下模型:
class Ipaddress(models.Model):
ipaddress=models.CharField(max_length=20)
slug = models.SlugField(unique=True)
machinename=models.CharField(max_length=500)
user=models.CharField(max_length=200)
department= models.ForeignKey('Department',on_delete=models.CASCADE,default='Empty')
location= models.ForeignKey('Location', on_delete=models.CASCADE)
updated = models.DateField("Date Updated",null=True)
note =models.TextField()
def __str__(self):
return self.ipaddress[:50]
class Department(models.Model):
name= models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name[:50]
class Location(models.Model):
description= models.CharField(max_length=100, unique=True)
def __str__(self):
return self.description[:50]
Run Code Online (Sandbox Code Playgroud)
管理员页面在这里:
from django.contrib import admin
from pages.models import Ipaddress, DeviceGroup, Location,Department,
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter
class IpaddressAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('ipaddress',)}
search_fields = ['ipaddress']
autocomplete_fields = ['department',]
list_display = ('ipaddress', 'machinename', 'user', 'department','location','updated',) …Run Code Online (Sandbox Code Playgroud) 我不知道要修改什么配置。
我的git存储库URL是:https : //github.com/Nomadcoders-Study/Nomadgram
Internal Server Error: /images/all/
Traceback (most recent call last):
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/rest_framework/views.py", line 478, in dispatch
request = self.initialize_request(request, *args, **kwargs)
File "/usr/local/var/pyenv/versions/3.6.1/envs/nomadgram/lib/python3.6/site-packages/rest_framework/views.py", line 380, in initialize_request …Run Code Online (Sandbox Code Playgroud) 我正在使用 django-rest-framework,并且我想只允许对我的 API 进行 GET 请求。
是否有一些全局设置?
目前我正在装饰个人视图,如下所示:
@api_view(['GET'])
def my_api_view(request, format=None):
# get data
Run Code Online (Sandbox Code Playgroud) 我将我的第一个 Django 项目上传到 DigitalOcean。命令之后python manage.py loaddata initial_data.json,我收到了这条消息:
django.db.utils.IntegrityError:安装固定装置'/webapps/django_shop/shop/initial_data.json'时出现问题:无法加载contenttypes.ContentType(pk = 3):重复的键值违反了唯一约束“django_content_type_app_label_76bd3d3b_uniq”详细信息:键(app_label) , model)=(auth,permission) 已经存在。
我该如何修复它?
python ×9
django ×8
abc ×1
abstract ×1
binary ×1
django-forms ×1
django-orm ×1
django-views ×1
many-to-many ×1
python-3.x ×1
rest ×1
signals ×1