小编M.j*_*vid的帖子

实例化抽象类时没有错误,即使没有实现抽象方法

我正在尝试下面的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确保我的父类是抽象的,子类也是抽象的,因为它没有实现抽象方法.但是在这里,我没有尝试实例化这两个类的错误.

有谁能解释为什么?

python abstract-class abc abstract python-3.x

2
推荐指数
1
解决办法
870
查看次数

django覆盖模型save()方法

我想requestsave()方法中作为参数获取.

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.我该怎么做.如果问题不正确,有人请更正问题.

django django-models django-forms django-views

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

python另外2位数字

我正在研究算法.练习包括放置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)

python binary

2
推荐指数
1
解决办法
122
查看次数

Django:当关系结束被删除时,m2m_changed没有被触发

注意:由于生产环境的限制,我必须坚持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)

python django many-to-many signals django-orm

2
推荐指数
1
解决办法
805
查看次数

django python manage.py runserver RuntimeError:设置已配置

我对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)

python django django-settings django-dev-server

2
推荐指数
1
解决办法
2891
查看次数

Django查询集,用于每月统计记录

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)

python django django-queryset

2
推荐指数
1
解决办法
776
查看次数

如何在Django管理页面中添加多个自动完成功能

我正在使用内置函数为许多字段建立自动完成功能: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)

python django django-models

2
推荐指数
1
解决办法
1085
查看次数

django rest框架“ TypeError:'type'对象不可迭代”错误

我不知道要修改什么配置。

我的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)

python django django-rest-framework

2
推荐指数
1
解决办法
2067
查看次数

django-rest-framework:全局限制对 GET 的请求?

我正在使用 django-rest-framework,并且我想只允许对我的 API 进行 GET 请求。

是否有一些全局设置?

目前我正在装饰个人视图,如下所示:

@api_view(['GET'])
def my_api_view(request, format=None):
    # get data
Run Code Online (Sandbox Code Playgroud)

python django rest django-rest-framework

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

IntegrityError:安装夹具时出现问题

我将我的第一个 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 django

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