小编Min*_*nnR的帖子

如何在Django Rest Framework中将当前用户设置为用户字段?

我有以下代码完美地工作.我可以Post通过选择图像和用户从DRF面板创建对象.但是,我希望DRF由当前登录的用户填充用户字段.

models.py

class Post(TimeStamped):
    user = models.ForeignKey(User)
    photo = models.ImageField(upload_to='upload/')
    hidden = models.BooleanField(default=False)
    upvotes = models.PositiveIntegerField(default=0)
    downvotes = models.PositiveIntegerField(default=0)
    comments = models.PositiveIntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

serializers.py

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ['id', 'user', 'photo']
Run Code Online (Sandbox Code Playgroud)

views.py

class PhotoListAPIView(generics.ListCreateAPIView):
    queryset = Post.objects.filter(hidden=False)
    serializer_class = PostSerializer
    authentication_classes = (SessionAuthentication, BasicAuthentication)
    permission_classes = (IsAuthenticated,)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

django django-rest-framework

41
推荐指数
6
解决办法
2万
查看次数

如何在Django中获取组中的所有用户?

我想获得Django Group中所有用户的列表.例如:

User.objects.filter(group='Staff')

我找不到如何在文档中的任何位置执行此查询.

django

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

如何在CentOS 7上安装PHP PDO ODBC驱动程序?

我已经在CentOS 7 VPS中安装了PHP 5.4.我现在正在尝试使用PHP脚本访问.mdb格式的旧数据库.

然而,我的phpinfo()页说,只有mysqlsqlitePDO驱动程序启用.没有启用名为ODBC的驱动程序.

这就是为什么我试图按照教程来实现它的原因.但它不起作用.bash: ./configure: No such file or directory.

我不知道从哪个文件夹运行那里列出的命令.是否有一个命令允许我从系统安装PDO ODBC驱动程序,例如yum -y install php_odbc哪个更容易让我使用?如果没有,我做错了什么?

php odbc pdo

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

如何从Django中的组检查当前用户的权限?

我有一个EuropartsBuyer名为的组和模型Product.

以下代码向Product模型添加权限.

class Meta:
        permissions = (
            ("can_add_cost_price", "Can add cost price"),
        )
Run Code Online (Sandbox Code Playgroud)

在我的一个视图中,我有以下代码将此权限添加到该组.

europarts_buyer, created = Group.objects.get_or_create(name='EuropartsBuyer')
add_cost_price = Permission.objects.get(codename='can_add_cost_price')
europarts_buyer.permissions.add(add_cost_price)
Run Code Online (Sandbox Code Playgroud)

在Django Admin的帮助下,我已经向该组添加了一个用户EuropartsBuyer.

当我在另一个视图中使用以下代码时

if request.user.has_perm('can_add_cost_price'):
    do something
Run Code Online (Sandbox Code Playgroud)

结果应该是,True但它显示False.因此,if子句下的代码不会运行.

我已经在Django shell中导入了当前登录的用户,当我再次测试权限时,它显示为False.

我在这做错了什么?

django permissions django-permissions django-users

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

如何在django UpdateView中的form_valid操作后保存其他数据?

我已net根据数量qty字段使用以下代码成功更改了对象中的特定字段.

class OrderDetailsProductEdit(UpdateView):
    model = OrdersPlaced
    fields = ['qty']
    template_name = 'backend/order-details-product-edit.html'
    success_url = '../../../'

    def form_valid(self, form):
        form.instance.net = form.instance.qty * form.instance.price
        # order = Order.objects.get(pk=self.kwargs['order_id'])
        # subtotal = OrdersPlaced.objects.filter(order=order).aggregate(Sum('net'))['net__sum']
        # order.subtotal = subtotal
        # order.save()
        return super(OrderDetailsProductEdit, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)

但是,我也试图改变另一个模型中的数据.确切地说,我想要net查询所有值的总和并更新subtotal另一个表中的字段.

请注意下面注释掉的行def form_valid.我没有混淆这些线的工作,但我需要它们在保存当前模型后执行,因为它们取决于当前模型的值.

除了subtotalnet保存当前模型中的字段之前计算ANOTHER模型中的字段之外,我没有发现任何错误.因此,总数是错误的答案.

我究竟做错了什么?

django model view

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

Django开发服务器显示错误61连接拒绝Redis

我正在尝试按照教程阅读Django频道的文档.在settings.py文件中,我尝试使用以下代码将内存BACKEND更改为redis后端:

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("localhost", 6379)],
        },
        "ROUTING": "chan.routing.channel_routing",
    },
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,运行该runserver命令的控制台显示以下错误:

ConnectionError: Error 61 connecting to localhost:6379. Connection refused.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

django redis channels

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

如何继承ForeignKey来扩展模型字段?

我正在尝试创建一个自定义外键。我继承了它并尝试重写__init__方法来提供位置参数toon_delete如下所示:

from django.contrib.auth.models import User

class CurrentUserField(models.ForeignKey):
    def __init__(self, **kwargs):
        super().__init__(User, models.CASCADE, **kwargs)


class DemoModel(models.Model):
    owner = CurrentUserField()
    info = models.TextField()
Run Code Online (Sandbox Code Playgroud)

当我运行时它给我以下错误makemigrations

TypeError: __init__() got multiple values for argument 'on_delete'
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚问题是什么。我只为两个位置参数提供两个值。

python django overriding field model

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

如何在 Django DetailView 中使用来自 URL 和请求的值?

我在 django views.py 中有一个 DetailView,我希望能够将来自 url ex:localhost:8000/myapp/details/3/ 的 pk 值和 request.user.id 与 if 语句进行比较。

视图中无外乎以下几行代码:

class UserDetail(DetailView):
    model = Profile
    template_name = 'details.html'
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。

django url if-statement detailview

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

如何将引导程序类添加到模板中的Django CreateView表单字段?

我正在使用Django CreateView,并且可以在模板中单独设置标签和字段。但是,我无法添加所需的引导程序类。目前,我有以下表格。

<form action="" method="post" class="form-horizontal">{% csrf_token %}
    <div class="form-group">
        <label class="control-label col-xs-1" for="name">{{ form.name.label }}:</label>
        <div class="col-xs-9">
            {{ form.name }}
        </div>

    </div>
    <div class="form-group">
        <label class="control-label col-xs-1" for="name">{{ form.code.label }}:</label>
        <div class="col-xs-9">
            {{ form.code }}
        </div>

    </div>
    <div class="form-group">
        <label class="control-label col-xs-1" for="name">{{ form.phone.label }}:</label>
        <div class="col-xs-9">
            {{ form.phone }}
        </div>

    </div>
    <input class="btn btn-primary col-xs-offset-1 col-xs-9" type="submit" value="Create" />
</form>
Run Code Online (Sandbox Code Playgroud)

如何在类变量名称,代码和电话中添加类?

forms django templates class twitter-bootstrap

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

如何根据Django中的字段名更改ImageField的upload_to参数?

我想根据Django管理员用户提供的字段值将图像上传到媒体根目录.这是我编写的代码,我知道upload_to参数导致了问题.但我不知道如何使它发挥作用.

models.py

class Info(models.Model):
    file_no = models.CharField(max_length=100)
    date = models.DateField()
    area = models.IntegerField(default=0.00)
    mouja = models.CharField(max_length=100)
    doc_type_choices = (
            ('deed', 'Deed'),
            ('khotian', 'Khotian'),
        )
    doc_type = models.CharField(max_length=50,
                                choices=doc_type_choices,
                                default='deed')
    doc_no = models.CharField(max_length=50)

    def __unicode__(self):
        return self.file_no

class Image(models.Model):
    info = models.ForeignKey('Info')
    content = models.ImageField(upload_to=self.info.mouja/self.info.doc_type)

    def __unicode__(self):
        return self.info.file_no
Run Code Online (Sandbox Code Playgroud)

每当我运行python manage.py makemigrations时它会显示NameError:name'self '未定义 事先感谢您的帮助!

django models filefield imagefield

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