小编Ami*_*tad的帖子

从Go Slice中选择一个随机值

情况:

我有一些值,需要从中随机选择一个值.然后我想用固定的字符串连接它.到目前为止这是我的代码:

func main() {
//create the reasons slice and append reasons to it
reasons := make([]string, 0)
reasons = append(reasons,
    "Locked out",
    "Pipes broke",
    "Food poisoning",
    "Not feeling well")

message := fmt.Sprint("Gonna work from home...", pick a random reason )
}
Run Code Online (Sandbox Code Playgroud)

题:

是否有内置功能,可以通过" 选择随机原因 "部分帮助我?

random go slice

35
推荐指数
2
解决办法
3万
查看次数

Django管理员中的自定义验证

我有一个非常简单的Django应用程序,以记录给我的同事的讲座.由于它是相当基本的,我使用Django管理员本身.这是我的models.py:

#models.py
from django.db import models

class Lecture(models.Model):
    topic = models.CharField(max_length=100)
    speaker = models.CharField(max_length=100)
    start_date = models.DateField()
    end_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)

我需要确保没有人在管理表单中的结束日期之后输入开始日期,所以我在管理员中阅读了django文档以进行自定义验证,并在我的admin.py中实现了以下内容:

#admin.py
from models import Lecture
from django.contrib import admin
from django import forms


class LectureForm(forms.ModelForm):
    class Meta:
        model = Lecture

        def clean(self):
            start_date = self.cleaned_data.get('start_date')
            end_date = self.cleaned_data.get('end_date')
            if start_date > end_date:
                raise forms.ValidationError("Dates are incorrect")
        return self.cleaned_data


class LectureAdmin(admin.ModelAdmin):
    form = LectureForm
    list_display = ('topic', 'speaker', 'start_date', 'end_date')

admin.site.register(Lecture, LectureAdmin)
Run Code Online (Sandbox Code Playgroud)

但是,这对我的管理员没有任何影响,我可以保存讲座,其中start_date位于end_date之后,如图所示:在此输入图像描述

我究竟做错了什么 ??

python django django-forms django-admin django-validation

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

检查变量是否属于python中的类

我有一个小班,如下:

class Gender(object):
    MALE = 'M'
    FEMALE = 'F'
Run Code Online (Sandbox Code Playgroud)

我有一个参数变量,只能是MF.为了确保它只是那个,我做以下事情:

>>> parameter = 'M'
>>> if parameter not in (Gender.MALE, Gender.FEMALE)
...     print "Invalid parameter"
...
Invalid parameter
>>>
Run Code Online (Sandbox Code Playgroud)

现在我有一个包含美国所有州的课程如下:

class States(object):
    ALABAMA = 'AL'
    ALASKA = 'AK'
    ARIZONA = 'AZ'
    ARKANSAS = 'AR'
    CALIFORNIA = 'CA'
    COLORADO = 'CO'
    CONNECTICUT = 'CT'
    DELAWARE = 'DE'
    DISTRICTOFCOLUMBIA = 'DC'
    ....
....
Run Code Online (Sandbox Code Playgroud)

就像上面的例子一样,我的参数现在是AL.但是,由于美国有50个状态,我实际上不能使用像我上面使用的50个变量的元组.有更好的方法吗?我确实读过关于isinstance的内容,但它没有给我预期的结果.

python class instance

11
推荐指数
3
解决办法
3798
查看次数

在Heroku上使用Python selenium运行ChromeDriver

所以我在Heroku上有一个Flask服务器已经按预期工作了一段时间.现在,根据新的要求,我需要向Flask服务器添加功能以从外部网站获取页面.因为最有名的原因我,我正在使用Selenium和Chrome网络驱动程序来执行此操作.我能够设置它并且它工作正常但我不太确定如何在Heroku服务器上设置它.我读了一些关于buildpacks的内容,发现了ChromeDriver的这个buildpack:

https://elements.heroku.com/buildpacks/jimmynguyc/heroku-buildpack-chromedriver
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何继续进行.我如何安装铬浏览器本身还需要什么才能将其全部绑定?

python selenium webdriver heroku selenium-chromedriver

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

Django rest框架中ViewSet和GenericViewSet的区别

我有一个 Django 休息框架GenericViewset,我试图为它设置分页,如下所示:

#settings.py
REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 
         'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 20
}

#views.py
class PolicyViewSet(viewsets.GenericViewSet):
    def list(self, request):
        queryset = Policy.objects.all()
        page = self.paginate_queryset(queryset)
        serializer = PolicySerializer(page, many=True)
        return self.get_paginated_response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

这按预期工作。 但是,如果我尝试使用普通的Viewset执行相同的操作,如下所示:

#views.py
class PolicyViewSet(viewsets.ViewSet):
    def list(self, request):
        queryset = Policy.objects.all()
        page = self.paginate_queryset(queryset)
        serializer = PolicySerializer(page, many=True)
        return self.get_paginated_response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

'PolicyViewSet' 对象没有属性 'paginate_queryset'

如何使用普通的Viewset设置分页。DRF 中的 GenericViewset 和 Viewset 有什么区别?

python django django-rest-framework django-rest-viewsets

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

管理Python虚拟环境的requirements.txt内容

所以我从头开始创建一个全新的Flask应用程序.正如所有优秀的开发人员所做的那样,我的第一步是创建虚拟环境.

我在虚拟环境中安装的第一件事是Flask==0.11.1.Flask安装以下依赖项:

  • 点击== 6.6
  • itsdangerous == 0.24
  • Jinja2的== 2.8
  • MarkupSafe == 0.23
  • WERKZEUG == 0.11.11
  • 轮== 0.24.0

现在,我创建了一个requirements.txt,以确保每个克隆存储库的人都拥有相同版本的库.但是,我的困境是这样的:

  • 我是否在requirements.txt中提及每个Flask依赖项以及版本号OR
  • 我是否只需要requirements.txt中提及确切的Flask版本号,并希望当他们执行pip install requirements.txt时,Flask将负责依赖管理,他们将下载正确版本的依赖库

python pip virtualenv requirements.txt

8
推荐指数
3
解决办法
2万
查看次数

Django管理员中的对象级权限

我有一个看起来像这样的模型:

class Change(models.Model):
    RFC = models.CharField(max_length=10)
    Ticket_Number = models.CharField(max_length=10)
    Plan_Owner = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

然后我通过这个在Django管理员中注册模型:

class ChangeAdmin(admin.ModelAdmin):
    search_fields = ('RFC', 'Ticket_Number','Plan_Owner')
    list_display = ('RFC', 'Ticket_Number','Plan_Owner')

    fieldsets = [
        ('Ticket Details', {
            'fields': ['RFC', 'Ticket_Number', 'Plan_Owner']}),
    ]

admin.site.register(Change, ChangeAdmin)
Run Code Online (Sandbox Code Playgroud)

我想要实现的是确保特定更改的Plan_owner是唯一可以在超级用户之外编辑它的人.每个人都可以查看它,但计划所有者是唯一可以对其进行更改的人.另外,通过编辑,我的意思是,他可以做任何事情,但删除一行.我已经看过Django监护人,它完全符合我的要求但是必须手动为每一行设置监护人的权限.我正在寻找一个解决方案,其中这些权限是根据我的要求自动设置的...

python django django-models django-guardian

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

在django管理面板中更改列宽

我的admin.py看起来像这样:

class ChangeAdmin(GuardedModelAdmin):
    form = ChangeForm
    search_fields = ('RFC', 'Ticket_Number', 'User_Email', 'Change_Details')
    list_display = ('RFC', 'Ticket_Number', 'User_Requested_Time', 'Start_Time', 'End_Time',
                    'User_Email', 'Line_of_Business', 'Conf_Call_Details', 'Region',
                    'Summary', 'Description', 'Change_Details', 'Site_code', 'Configuration_Item',
                    'Plan_Owner', 'Plan_status', 'Change_Owner', 'Implementer', 'Validator')
    date_hierarchy = 'Start_Time'
    list_select_related = True
Run Code Online (Sandbox Code Playgroud)

很明显,表格显示中有很多列表字段.这搞砸了数据在列中的显示方式.查看截图在此输入图像描述

如何在django admin中调整列宽?

python django django-admin django-views

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

在Python中查找变量的先前值

这可能是一个非常奇怪的问题但是,

考虑一个名为a的变量.现在让我们为它赋值如下:

a = 1
Run Code Online (Sandbox Code Playgroud)

现在让我们改变的值现.

a = 3
Run Code Online (Sandbox Code Playgroud)

有没有办法在Python中知道变量的先前值而不将其存储在另一个变量中.是否python在内部维护一个变量的所有值的分类帐,在其生命周期内可以访问?

python

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

用于从浏览器打开PuTTY客户端的HTML代码

我正在尝试创建一个网页,其中包含我们团队以表格形式管理的整个服务器库存.我使用简单的LAMP堆栈和库存输入作为CSV文件.

该表有三列:主机名,IP地址和设备序列号.

虽然这很好用,但我想更进一步,让表中的每个IP地址都是一个超链接,单击它将打开一个SSH客户端,它将连接到该IP地址.有关如何做到这一点的任何线索?我希望会有像mailto:打开电子邮件客户端(Outlook窗口)的标签.

html putty

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