小编bay*_*man的帖子

如何在django-tables2中添加计数器列?

我正在尝试使用django-tables2在表的第一列上添加一个计数器,但是下面的解决方案仅在#列下显示全0。我应该如何添加一列,该列将为行编号?

table.py:

import django_tables2 as tables
from profiles.models import Track
import itertools
counter = itertools.count()

class PlaylistTable(tables.Table):

    priority = tables.Column(verbose_name="#", default=next(counter))

    class Meta:
        model = Track
        attrs = {"class": "paleblue"}
        orderable = False
        fields = ('priority', 'artist', 'title')
Run Code Online (Sandbox Code Playgroud)

我的模板:

{% render_table table %}
Run Code Online (Sandbox Code Playgroud)

python django django-tables2

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

Django年度验证在2017年返回"确保此值小于或等于2016"

在我的数据库中,我有一个记录,其中年份字段是2016年,但我需要将其更改为2017年.当我使用Django管理员更改2017年时,我得到"确保此值小于或等于2016".我的模特有什么问题?

class Track (models.Model):    
    artist = models.ForeignKey(Artist, blank=True, null=True, on_delete=models.SET_NULL, verbose_name="Artist")
    title = models.CharField(max_length=100, verbose_name="Title")
    year = models.PositiveSmallIntegerField(null=True, blank=True, validators=[MinValueValidator(1900), MaxValueValidator(datetime.datetime.now().year)], verbose_name="Year")
    timestamp = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

python django

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

如何使用 google API for python 在特定文件夹下创建工作表?

我可以在“我的驱动器”的根目录中使用以下代码创建工作表,但如何在“我的驱动器”或“共享驱动器”中的文件夹下创建工作表?

from googleapiclient.discovery import build

service = build(‘sheets’, ‘v4’, credentials=creds)
sheet = service.spreadsheets()
body = {}
results = sheet.create(body=body).execute()
pprint(results)
Run Code Online (Sandbox Code Playgroud)

python google-sheets google-drive-api google-api-python-client google-sheets-api

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

如何在Django休息框架中检索外键字段?

鉴于下面的模型和序列化程序类,当我检索Track细节时,它只会显示Track标题,但不会显示相关的Artist.

在检索Track详细信息时,如何显示Artist名称?

models.py

class Artist (models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Track (models.Model):    
    artist = models.ForeignKey(Artist, blank=True, null=True, on_delete=models.SET_NULL, verbose_name="Artist")
    title = models.CharField(max_length=100, verbose_name="Title")

    def __str__(self):
        return self.title
Run Code Online (Sandbox Code Playgroud)

serializers.py

class ArtistSerializer(serializers.ModelSerializer):

    id = serializers.IntegerField(read_only=True)
    name = serializers.CharField()

    class Meta:
        model = Artist
        fields = ('id', 'name')

class TrackSerializer(serializers.ModelSerializer):

    class Meta:
        model = Track
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

django serialization django-rest-framework

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

如何在django模板的html页面上打印漂亮的JSON?

为什么在python中,我可以使用下面的python示例打印JSON,但是在django模板中,它不起作用?如何在django模板中打印JSON?

蟒蛇:

import requests, json
url = 'https://api.example.com/details'
r = requests.get(url)
json_data = r.json()
json_pretty = json.dumps(json_data, sort_keys=True, indent=4)
print (json_pretty)
Run Code Online (Sandbox Code Playgroud)

django views.py:

def json_list(request):
    url = 'https://api.example.com/details'
    r = requests.get(url)
    json_data = r.json()
    json_pretty = json.dumps(json_data, sort_keys=True, indent=4)

    context = {
        "json_pretty": json_pretty,
        }
    return render(request, "json_output.html", context)
Run Code Online (Sandbox Code Playgroud)

模板:

<div>{{ json_pretty }}</div>
Run Code Online (Sandbox Code Playgroud)

python django json

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

Python如何一次遍历列表100个元素直到我到达所有元素?

给定一个函数 process_list,它获取唯一 ID 列表并将列表发送到 API 端点进行处理。列表的限制是一次 100 个元素。

如果我有一个超过 100 个元素的列表,我如何处理前 100 个,然后是接下来的 100 个,直到达到 n?

my_list = [232, 231, 932, 233, ... n]
# first 100
process_list(my_list[:100])


def process_list(my_list):
    url = 'https://api.example.com'
    data = {'update_list': my_list}
    headers = {'auth': auth}
    r = requests.put(url, data=json.dumps(data), headers=headers)
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.6

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

在注释中使用 ingressClassName 而不是 kubernetes.io/ingress.class 时,ingress-nginx 不起作用

我使用 Kubespray 部署了一个裸机集群,并启用了 kubernetes 1.22.2、MetalLB 和 ingress-nginx。404 Not found当设置时尝试访问通过 helm 部署的任何服务时,我得到了ingressClassName: nginx。但是,如果我不使用ingressClassName: nginx而是kubernetes.io/ingress.class: nginx在 helm 图表中使用,一切都会正常工作。yaml。我怎样才能让它工作ingressClassName

这些是我的 kubespray 设置inventory/mycluster/group_vars/k8s_cluster/addons.yml

# Nginx ingress controller deployment
ingress_nginx_enabled: true
ingress_nginx_host_network: false
ingress_publish_status_address: ""
ingress_nginx_nodeselector:
  kubernetes.io/os: "linux"
ingress_nginx_tolerations:
  - key: "node-role.kubernetes.io/master"
    operator: "Equal"
    value: ""
    effect: "NoSchedule"
  - key: "node-role.kubernetes.io/control-plane"
    operator: "Equal"
    value: ""
    effect: "NoSchedule"
ingress_nginx_namespace: "ingress-nginx"
ingress_nginx_insecure_port: 80
ingress_nginx_secure_port: 443
ingress_nginx_configmap:
  map-hash-bucket-size: "128"
  ssl-protocols: "TLSv1.2 TLSv1.3"
ingress_nginx_configmap_tcp_services:
  9000: "default/example-go:8080"
ingress_nginx_configmap_udp_services:
  53: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm nginx-ingress

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

如何允许用户删除 django allauth 中的帐户?

我正在尝试找出允许用户使用 django-allauth 删除或停用其帐户的最佳方法,并且我假设我需要将 is_active 字段设置为 False。

我的下面的解决方案有几个问题: 1) 呈现的复选框字段 is_active 显示文本“指定此用户是否应被视为活动用户。取消选择此选项而不是删除帐户。” 如何将此文本更改为“如果您确定要删除此帐户,请选中此框。”?

更新:刚刚意识到选中该框将 is_active 设置为 True,而取消选中该框将其设置为 False,所以也许我可能需要使用不同的字段来验证表单?

2) 如何在提交时注销用户?

形式.py:

class DeactivateUserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['is_active']
Run Code Online (Sandbox Code Playgroud)

视图.py:

login_required(login_url='/accounts/login/')
def deactivate_user_view(request):  
    pk = request.user.id
    user = User.objects.get(pk=pk)
    user_form = DeactivateUserForm(instance=user)
    if request.user.is_authenticated() and request.user.id == user.id:
        if request.method == "POST":
            user_form = DeactivateUserForm(request.POST, instance=user)
            if user_form.is_valid():
                deactivate_user = user_form.save(commit=False)
                user.is_active = False
                deactivate_user.save()
        return render(request, "account/userprofile_del.html", {
            "user_form": user_form,
        })
    else:
        raise PermissionDenied
Run Code Online (Sandbox Code Playgroud)

用户个人资料_del.html:

<h2>Delete your account</h2> …
Run Code Online (Sandbox Code Playgroud)

python django django-allauth

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

如何使用熊猫替换所有列中的所有字符串?

在 Pandas 中,如何&amp;用 '&'替换&amp可能位于字符串中任何位置的所有列?

例如,在列标题中,如果有一个值“&amp;好坏”,我该如何用“好与坏”替换它?

python python-3.x pandas

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

如何在django中获取最后一次登录ip并保存到GenericIPAddressField?

我正在扩展用户配置文件并添加了一个last_ip字段,如下所示.每当用户登录其当前IP时,如何更新此字段?如果重要,我正在使用allauth.

class UserProfile(models.Model):  
    user = models.OneToOneField(User)
    last_ip = models.GenericIPAddressField(protocol='IPv4', verbose_name="Last Login IP")
    location = models.CharField(max_length=50, blank=True)
Run Code Online (Sandbox Code Playgroud)

django django-allauth

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

Python检查字典中的列表是否满足两个条件

给定下面的 list1,如何返回一个新列表,其中 'codes' 的值包含字符串 'Two' 但不包含字符串 'One'?

# Example, given list1:
list1 = [{'id': 11, 'codes': ['OneSeven', 'TwoThree']}, {'id': 22, 'codes': ['FiveTwoSix', 'Four', 'FourFive']}, {'id': 33, 'codes': ['SixSeven', 'OneSix']}]

# Return list with element where 'id': 22 since the string 'Two' is in codes but 'One' isn't.
list2 = [{'id': 22, 'codes': ['FiveTwoSix', 'Four', 'FourFive']}]
Run Code Online (Sandbox Code Playgroud)

python

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

ValueError:在 Django 4.0 中调用 makemigrations 时找不到函数验证器

使用此处的解决方案来验证 URLField,我在运行时收到 ValueError python manage.py makemigrations,但我不确定为什么。我究竟做错了什么?

from django.contrib.auth.models import User
from django.db import models
from django.core.exceptions import ValidationError

from urllib.parse import urlparse


def validate_hostname(*hostnames):
    hostnames = set(hostnames)
    def validator(value):
        try:
            result = urlparse(value)
            if result.hostname not in hostnames:
                raise ValidationError(f'The hostname {result.hostname} is not allowed.')
        except ValueError:
            raise ValidationError('Invalid URL')
    return validator

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True)
    twitter = models.URLField(
        blank=True,
        null=True,
        validators=[validate_hostname('twitter.com', 'www.twitter.com')]
    )
Run Code Online (Sandbox Code Playgroud)

追溯

$ python manage.py makemigrations

Migrations for 'userprofiles':
  userprofiles/migrations/0002_userprofile_twitter.py
    - Add …
Run Code Online (Sandbox Code Playgroud)

django

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