javascript

git

java

python

git-remote

django

c#

reactjs

c++

github

kubernetes

ruby-on-rails

.net

.net-framework-version

operators

git-fetch

typescript

user-experience

chmod

css

如何在Django中为同一个模型提供两个外键?

我想要两个相同模型的外键:

class Test(models.model):
    example1 = models.ForeignKey(Example)
    example2 = models.ForeignKey(Example)

我收到如下错误:

字段“ example1”的访问器与相关的冲突 字段“ Example.test_set”。 添加related_name参数 到“ example1”的定义。

trans by 2020-08-08T23:48:34Z

python-添加自定义Django模型验证

我有一个带有开始和结束日期范围的Django模型。 我想强制执行验证,以便没有两个记录具有重叠的日期范围。 最简单的实现方法是什么,这样我就不必重复编写逻辑了?

例如 我不想在Form和ModelForm和admin表单以及模型的save()中重新实现此逻辑。

据我所知,Django在全球范围内强制执行这些类型的条件并不容易。

谷歌搜索并不是很有帮助,因为“模型验证”通常是指验证特定的模型字段,而不是验证整个模型内容或字段之间的关系。

trans by 2020-08-08T22:10:39Z

Django迁移RunPython无法调用模型方法

我正在使用RunPython方法创建数据迁移。 但是,当我尝试在对象上运行方法时,未定义任何方法。 是否可以使用RunPython调用模型上定义的方法?

trans by 2020-08-05T06:31:00Z

Django中的动态文件路径

我正在尝试在Django中生成动态文件路径。 我想制作一个像这样的文件系统:

 -- user_12
     --- photo_1
     --- photo_2
 --- user_ 13
     ---- photo_1

我发现了一个相关的问题:具有动态路径的Django自定义图像上传字段

他们在这里说,我们可以更改upload_to路径,并指向[https://docs.djangoproject.com/en/stable/topics/files/]文档。 在文档中,有一个示例:

from django.db import models
from django.core.files.storage import FileSystemStorage

fs = FileSystemStorage(location='/media/photos')

class Car(models.Model):
    ...
    photo = models.ImageField(storage=fs)

但是,这仍然不是动态的,我想给Car id赋予图像名称,并且在Car定义完成之前我无法分配ID。 那么如何创建带有汽车ID的路径?

trans by 2020-08-03T19:01:42Z

Django:等同于“从[表名]中选择[列名]”

我想知道有什么等同于:

select columnname from tablename

就像Django教程中所说的:

Entry.objects.filter(condition)

提取具有给定条件的所有对象。 它就像是:

select * from Entry where condition

但是我只想列出一列(在我的情况下是外键)。 发现:

Entry.objects.values_list('column_name', flat=True).filter(condition)

一样。 但是在我的情况下,该列是外键,因此该查询丢失了外键的属性。 它只是存储值。 我无法拨打查询电话。

trans by 2020-08-01T15:35:53Z

Django Imagefield无法通过ModelForm正常工作

我敢肯定我正在做的事情确实很愚蠢,但是我已经尝试了好几个小时了,而且没有任何事情发生在我身上。

我正在使用ModelForm,以便可以公开模型中的一些字段以进行编辑。 2x ImageField,1x TextField。 表单已处理,TextField有效。 这两个ImageField不起作用,这就是为什么我今天在这里。

我正在使用Django 1.0.2

这是相关的代码(如果您需要更多,请询问-我不包括HTML,因为该部分似乎可以正常工作):

模型:

class Company(models.Model):
    #...
    logo = models.ImageField(upload_to='logos', blank=True)
    intro_pic = models.ImageField(upload_to='intropics', blank=True)
    intro_text = models.TextField(blank=True)

视图和形式:

def admin_edit(request, company_slug):
    company = get_object_or_404(Company, slug = company_slug)

    f = AdminEditForm(instance = company)
    if request.method == 'POST':
        f = AdminEditForm(request.POST, instance = company)
        if f.is_valid():
            print "Processing form"
            print f.cleaned_data['intro_pic']
            f.save()

    return render_to_response('uadmin/edit.html', {'company':company, 'f':f}, RequestContext(request))


class AdminEditForm(ModelForm):
    class Meta:
        model = Company
        fields = ['logo', 'intro_pic', 'intro_text']
trans by 2020-07-30T22:13:36Z

python-Django:获取模型s中的当前用户

我想以models.py的Timesheet方法获得当前登录的用户(Tasks)。 我想检查用户的角色,并查看它是否可以根据其角色执行某些操作。

models.朋友:

class TimeSheet(models.Model):
    check_in_time = models.TimeField()
    check_out_time = models.TimeField()

class Tasks(models.Model):
    time_sheet = models.ForeignKey(TimeSheet)
    project = models.ForeignKey(Project)
    start_time = models.TimeField()
    end_time = models.TimeField()

    def save(self, *args,**kwargs):
        project = SpentTime.objects.get(project__project__id = self.project.id)
        start = datetime.datetime.strptime(str(self.start_time), '%H:%M:%S')
        end = datetime.datetime.strptime(str(self.end_time), '%H:%M:%S')
        time = float("{0:.2f}".format((end - start).seconds/3600.0))

        if common.isDesigner(request.user):
            SpentTime.objects.filter(project__project__id = self.project.id).update(design = float(project.design) + time)

        if common.isDeveloper(request.user):
            SpentTime.objects.filter(project__project__id = self.project.id).update(develop = float(project.develop) + time)

        super(Tasks, self).save(*args, **kwargs)

这里的Tasks模型被用作Timesheet模型中的内联模型。 我想检查当前登录用户的角色,并根据用户角色更新另一个模型。 在这里,我需要request.user来检查当前用户的角色。 我没有使用任何形式或模板,而是完全利用了Django admin。 是否有任何方法可以通过save方法获得request.user或检查并更新admin.py中另一个模型中的值?

trans by 2020-07-30T00:10:27Z

序列化Django Rest Fram时的其他字段

我是Django rest框架的新手,并创建了样本full_name模型。

我的models.py:

class Employees(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

我的serializers.py:

class EmployeeSerializer(serializers.Serializer):
    class Meta:
        model = Employees
        fields = ('first_name','last_name')

这工作正常,但我想要一个附加字段full_name,将其是serializers.py

如何在serializers.py中定义这个新字段full_name

trans by 2020-07-25T10:35:30Z

Django是否可以自动创建相关的一对一模型?

我在不同的应用程序中有两个模型:modelS和modelS。 他们有一对一的关系。 保存模型后,django是否可以自动创建和保存模型?

class ModelA(models.Model):
    name = models.CharField(max_length=30)

class ModelB(models.Model):
    thing = models.OneToOneField(ModelA, primary_key=True)
    num_widgets = IntegerField(default=0)

当我保存一个新的ModelA时,我想要一个条目自动保存在ModelB中。 我怎样才能做到这一点? 有没有一种方法可以在ModelA中指定? 还是这不可能,我只需要在视图中创建并保存ModelB?

编辑说模型在不同的应用程序中。

trans by 2020-07-23T23:11:52Z

python-如何从Django中的复选框获取多个值

我想使用request.POST['xzy']作为列表来获取多选复选框的值。这是我的模型和模板代码。

我的模特

class Recommend(models.Model):
  user=models.ForeignKey(User)
  book=models.ForeignKey(BookModel)
  friends=models.ManyToManyField(User, related_name="recommended")

我的范本

{% for friend in friends %}

<input type="checkbox" name="recommendations" id="option{{friend.id}}" value={{friend.username}} />
<label for="option{{friend.id}}"><b>{{friend.username}}</b></label><br />

{% endfor %}

我的查看代码

if request.method == 'POST': 
  recommendations=request.POST['recommendations']

在这里,我希望“建议”是一个包含所有朋友ID的列表,但是在这里,它只是被覆盖,并且只包含在上一个for循环迭代中分配的值。 我怎么解决这个问题。 迫切需要帮助。 谢谢。

trans by 2020-07-22T06:34:22Z

我可以有一个对自己有外键引用的Django模型吗?

好吧,我该怎么做?

class Example(models.Model):
  parent_example = models.ForeignKey(Example)

我想让一个模型具有对自身的外键引用。 当我尝试创建此代码时,我收到django验证错误,该错误尚未定义Example。

trans by 2020-07-13T22:11:14Z

Django最有效的方法来计算查询中的相同字段值

可以说,如果我有一个包含很多字段的模型,但我只关心一个charfield。 可以说charfield可以是任何东西,所以我不知道可能的值,但是我知道值经常重叠。 因此,我可以有20个带有“ abc”的对象和10个带有“ xyz”的对象,或者我可以有50个带有“ def”的对象以及80个带有“ stu”的对象,而我有40000个没有重叠的对象,我真的不在乎。

如何有效地计算对象? 我想要返回的是这样的:

{'abc':20,'xyz':10,'other':10,000}

或类似的东西,不进行大量的SQL调用。

编辑:

我不知道是否有人会看到这个,因为我正在编辑,但是...

我有这个模型:

class Action(models.Model):
    author = models.CharField(max_length=255)
    purl = models.CharField(max_length=255, null=True)

从答案中,我做到了:

groups = Action.objects.filter(author='James').values('purl').annotate(count=Count('purl'))

但...

这是什么组:

{"purl": "waka"},{"purl": "waka"},{"purl": "waka"},{"purl": "waka"},{"purl": "mora"},{"purl": "mora"},{"purl": "mora"},{"purl": "mora"},{"purl": "mora"},{"purl": "lora"}

(我只是用虚数值填充了purl)

我想要的是

{'waka': 4, 'mora': 5, 'lora': 1}

希望有人会看到此编辑...

编辑2:

显然我的数据库(BigTable)不支持Django的聚合函数,这就是为什么我遇到所有问题的原因。

trans by 2020-07-13T05:36:54Z

Django打印选择值

EMP_CHOICES = (
         (0,'-- Select --'),
         (1,'Good'),
         (2,'Average'),
     )

class EMPFeedback(models.Model):
     user_choices = models.IntegerField(choices=EMP_CHOICES)

如果存储在db中的值为1供用户选择,如何打印相应的用户选择相应的值(即1 == GOOD)

fb = EMPFeedback.objects.get(id=1)
print fb.user_choices  # prints 1
print fb.user_choices.EMP_CHOICES 
trans by 2020-07-13T05:17:57Z

我如何在Django模型中设置textField中行,列的大小

我有这个模特

summary         = models.TextField()

但是我只希望有4行15列。

另外,如果这样做,我是否需要再次安装数据库。

trans by 2020-07-12T13:08:49Z

python-如何将计算字段添加到Django mod

我有一个简单的value_to_string() takes exactly 2 arguments (1 given)模型,其中包括self, objobjmiddlename字段。

在管理方面,可能在其他地方,我想显示为:

lastname, firstname middlename

对我而言,执行此操作的逻辑位置是在模型中通过创建一个这样的计算字段:

from django.db import models
from django.contrib import admin

class Employee(models.Model):
    lastname = models.CharField("Last", max_length=64)
    firstname = models.CharField("First", max_length=64)
    middlename = models.CharField("Middle", max_length=64)
    clocknumber = models.CharField(max_length=16)
    name = ''.join(
        [lastname.value_to_string(),
        ',',
         firstname.value_to_string(),
        ' ',
         middlename.value_to_string()])

    class Meta:
        ordering = ['lastname','firstname', 'middlename']

class EmployeeAdmin(admin.ModelAdmin):
    list_display = ('clocknumber','name')
    fieldsets = [("Name", {"fields":(("lastname", "firstname", "middlename"), "clocknumber")}),
        ]

admin.site.register(Employee, EmployeeAdmin)

最终,我认为我需要以字符串形式获取名称字段的值。 我得到的错误是value_to_string() takes exactly 2 arguments (1 given)。字符串值想要self, obj。我不确定obj的含义。

必须有一个简单的方法来做到这一点,我敢肯定我不是第一个想要这样做的人。

编辑:这是我的代码修改为丹尼尔的答案。 我得到的错误是:

django.core.exceptions.ImproperlyConfigured: 
    EmployeeAdmin.list_display[1], 'name' is not a callable or an 
    attribute of 'EmployeeAdmin' of found in the model 'Employee'.


from django.db import models
from django.contrib import admin

class Employee(models.Model):
    lastname = models.CharField("Last", max_length=64)
    firstname = models.CharField("First", max_length=64)
    middlename = models.CharField("Middle", max_length=64)
    clocknumber = models.CharField(max_length=16)

    @property
    def name(self):
        return ''.join(
            [self.lastname,' ,', self.firstname, ' ', self.middlename])

    class Meta:
        ordering = ['lastname','firstname', 'middlename']

class EmployeeAdmin(admin.ModelAdmin):
    list_display = ('clocknumber','name')
    fieldsets = [("Name", {"fields":(("lastname", "firstname", "middlename"), "clocknumber")}),
]

admin.site.register(Employee, EmployeeAdmin)
trans by 2020-07-10T12:22:00Z

Django Admin嵌套内联

我需要嵌套的django管理员内联,我可以将日期字段内联包含在其他内联中,如下所示。

我有以下模型:

class Person(models.Model):
     name = models.CharField(max_length=200)
     id_no = models.IntegerField()

class Certificate(models.Model):
     cerfificate_no = models.CharField(max_length=200)
     certificate_date = models.DateField(max_length=100)
     person = models.ForeignKey(Person)
     training = models.CharField(max_length=200)

class Training_Date(models.Model):
      date = models.DateField()
      certificate = models.ForeignKey(Certificate)

和下面的管理员:

class CertificateInline(admin.StackedInline):
    model = Certificate

class PersonAdmin(admin.ModelAdmin):
     inlines = [CertificateInline,]
admin.site.register(Person,PersonAdmin)

但我需要将Training_Date模型作为内联包含在内,这是证书管理内联的一部分。

任何想法 ?

trans by 2020-07-10T10:30:43Z

python-通用的多对多关系

我正在尝试创建一个消息传递系统,其中消息的发送者和接收者可以是通用实体。 对于发件人来说,这似乎很好,在该发件人中只有要引用的对象(GenericForeignKey),但我不知道如何为收件人进行处理(GenericManyToManyKey ??)。

下面是一个简化的示例。 PersonClient和CompanyClient从Client继承属性,但具有其自己的特定详细信息。 最后一行是症结所在。 如何允许邮件收件人成为CompanyClients和PersonClients的集合

  class Client(models.Model):
      city = models.CharField(max_length=16)

      class Meta:
          abstract = True

  class PersonClient(Client):
      first_name = models.CharField(max_length=16)
      last_name = models.CharField(max_length=16)
      gender = models.CharField(max_length=1)

  class CompanyClient(Client):
      name = models.CharField(max_length=32)
      tax_no = PositiveIntegerField()

  class Message(models.Model):
      msg_body = models.CharField(max_length=1024)
      sender = models.ForeignKey(ContentType)
      recipients = models.ManyToManyField(ContentType)
trans by 2020-07-09T21:28:48Z

Django:保存mod时填充用户ID

我有一个带有created_by字段的模型,该模型链接到标准Django用户模型。 保存模型时,我需要使用当前用户的ID自动填充它。 我无法在Admin层执行此操作,因为该网站的大部分内容都不会使用内置的Admin。 谁能建议我该怎么做?

trans by 2020-07-09T19:07:06Z

django-get()返回了多个topi

当我尝试将一个属性与另一个具有M对M关系的属性相关时,我收到此错误:

get()返回了多个主题-返回了2个!

你们能告诉我这是什么意思,也许可以提前告诉我如何避免此错误?

楷模

class LearningObjective(models.Model):
    learning_objective=models.TextField()

class Topic(models.Model):
    learning_objective_topic=models.ManyToManyField(LearningObjective)
    topic=models.TextField()

Topic.objects.all()的输出

[<LearningObjective: lO1>, <LearningObjective: lO2>, <LearningObjective: lO3>]

output of Topic.objects.all()

[<Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>]

意见

 def create_themen(request):
     new_topic=Topic(topic=request.POST['topic'])
     new_topic.save()
     return render(request, 'topic.html', {'topic': topic.objects.all()})

 def create_learning_objective(request):
     new_learning_objective=LearningObjective(learning_objective=request.POST['learning_objective'])
     new_learning_objective.save()
     new_learning_objective_topic=Topic.objects.get(topic=request.POST['topic'])
     new_learning_objective_topic.new_learning_objective_topic.add(new_learning_objective)
     return render( request, 'learning_objective.html', {
                    'topic': Topic.objects.all(),
                    'todo': TodoList.objects.all(),
                    'learning_objective': LearningObjective.objects.all()
                  })
trans by 2020-07-09T15:31:12Z

Django按日期排序,但末尾有“无”吗?

我有一个工作单模型,其中包含一个何时需要工作单的字段。 为了获得工作单的列表,以及那些需要提前完成的工作单,我这样做:

None

这很好用,但只有在该字段中确实有一个值的情况下才可以。 如果没有必需的日期,则值为2954492574540760060064。然后,工作订单列表的所有2954492574540760060065都位于顶部,然后其余的工作订单按正确的顺序排列。

我怎样才能在底部找到2954492574540760060064?

trans by 2020-07-06T12:39:54Z

1 2 3 4 5 6 7 8 下一页 共8页