小编Iva*_*kin的帖子

python2中的dict_proxy与python3中的mappingproxy有什么区别?

我注意到当我在python2中创建类时,它将属性存储在dict_proxy对象中:

>>> class A(object):
...     pass
>>> A.__dict__
dict_proxy({....})
Run Code Online (Sandbox Code Playgroud)

但是在python3中__dict__返回mappingproxy:

>>> class A(object):
...     pass
>>> A.__dict__
mappingproxy({....})
Run Code Online (Sandbox Code Playgroud)

两个人之间有什么区别吗?

python python-2.x python-3.x python-internals

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

'Member' 对象没有属性 'all'

我的模型定义为:

class MembershipHistory(models.Model):
    mem_name = models.ForeignKey(Member, on_delete=models.CASCADE, related_name='mem_number')
    project_number = models.IntegerField()
    project_name = models.CharField(max_length=200)
    evaluator_remark = models.TextField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

这是我制作的另一个模型 ForeignKey

class Member(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=200)
    membership_number = models.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)

我将我的表格定义为

class MembershipHistoryForm(forms.Form):
    def __init__(self,*args, **kwargs):
        self.user = kwargs.pop('user')
        super(MembershipHistoryForm, self).__init__(*args, **kwargs)
        self.fields['mem_name'].queryset = Member.objects.get(user=self.user)
   #mem_name = forms.ModelChoiceField(empty_label="NAME")

    class Meta:
        model = MembershipHistory
        fields = '__all__'
        widgets = {
            'project_number':forms.TextInput(attrs={'placeholder':'Project Number'}),
            'project_name':forms.TextInput(attrs={'placeholder':'Project Name'}),
            'evaluator_remark':forms.Textarea(attrs={'placeholder':'Evaluator Remark'}),
        }
Run Code Online (Sandbox Code Playgroud)

现在,每当我实例化表单时,我都不会收到以下错误

Django Version: 1.10.4
Exception Type: AttributeError
Exception Value: 'Member' object has …
Run Code Online (Sandbox Code Playgroud)

django django-forms

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

如何使用打字稿在猫鼬模型中定义自定义查询助手?

我想使用查询助手 api定义自定义查询助手 。这里的例子:

// models/article.ts

import { Document, Schema, Model, model } from 'mongoose';

interface IArticle extends Document {
   name: string;
}

interface IArticleModel extends Model<IArticle> {
   someStaticMethod(): Promise<any>;
}

const ArticleSchema = new Schema( { name: String } )

ArticleSchema.query.byName = function(name) {
    return this.find({ name })
}

export default model<IArticle, IArticleModel>('Article', ArticleSchema);



// routes/article.ts
import ArticleModel from '../models/article.ts'

router.get('/articles, (req, res) => {
    ArticleModel.find().byName('example')
})
Run Code Online (Sandbox Code Playgroud)

byName当我将方法与默认值链接时,Typescript 会抱怨方法。
我可以把它放在IArticleModel接口中,但在那种情况下我只能从模型中调用它。
我应该把这个方法的定义放在哪里才能以可链接的方式使用它?

javascript mongoose mongodb typescript

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

从模板Django中包含静态文件

项目结构:

??? db.sqlite3
??? manage.py
??? static
?   ??? admin
?       ??? css
?       ??? img
?       ??? js
??? abc1
?   ??? admin.py
?   ??? __init__.py
?   ??? migrations
?   ?   ??? __init__.py
?   ??? models.py
?   ??? templates
?   ?   ??? abc1
?   ?       ??? homepage.html
?   ?       ??? css
?   ?       ??? img
?   ?       ??? js
?   ??? tests.py
?   ??? urls.py
?   ??? views.py
??? abc2
    ??? functions.py
    ??? __init__.py
    ??? settings.py
    ??? urls.py
    ??? …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-admin

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

在django模板中使用相关字段名称

我有两个模型如下:

class A(models.Model):
    a = models.BooleanField(default=False)
    q = models.BooleanField(default=False)

class B(models.Model):
    c = models.Foreignkey('A', related_name='bb')
    d = models.BooleanField(default=False)
    e = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

class Myview(ListView):

    model = A
    template_name = 'admin/layer.html'

    def get_context_data(self, *args, **kwargs):
        context = super(ListView, self).get_context_data(*args, **kwargs)
        context['mylist'] = A.objects.filter(bb__e=False)
        return context
Run Code Online (Sandbox Code Playgroud)

一切都工作正常,除了在我的模板'admin/layer.html'我尝试这个:

{% for list in mylist %}
    {{ list.bb.d }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何价值{{ list.bb.d }}我可以在django模板中以这种方式使用相关的字段名称吗?

django django-templates foreign-key-relationship

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