小编Oja*_*ale的帖子

Factory_boy 不创建不同的 User 对象 Django

我是 Django 的 Factory_boy 新手。花了一些时间后,我了解了如何为用户模型创建工厂。

我正在使用默认的用户模型,以下是我的工厂。我使用 Faker 来获得随机性

import factory
from . import models
from django.contrib.auth.models import User
from faker import Faker
from django.contrib.auth.hashers import make_password

fake = Faker()

class UserFactory(factory.DjangoModelFactory):
    class Meta:
        model = User
        django_get_or_create = ('email',)

    first_name = fake.first_name()
    last_name = fake.last_name()
    email = first_name+"."+last_name+"@gmail.com"
    password = make_password("ojasojas")
    username = first_name+"_"+last_name
Run Code Online (Sandbox Code Playgroud)

现在在 django shell 中

我使用 UserFactory.create() 来创建用户。这很好用。是否可以循环创建语句并创建 5 个不同的用户?现在,当我这样做时,我只获得一个用户(创建一次并“获取”4 次),如下所示。我缺少什么?在此输入图像描述

python django factory-boy

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

在链表的尾部插入一个节点 python HackerRank

它是一个在链表末尾添加节点的非常简单的程序。我不知道我在做什么错误。是否与hackerRank 的exoected 输出有关,或者我的代码中有错误。我正在尝试实现 Python2

class Node(object):

   def __init__(self, data=None, next_node=None):
       self.data = data
       self.next = next_node
def Insert(head, data):

    if (head.head == None):
        head.head = Node(data)
    else:
        current = head.head
        while (current.next != None) and (current.data == data):
                           current = current.next
        current.next = Node(data)
Run Code Online (Sandbox Code Playgroud)

这是问题的链接。 https://www.hackerrank.com/challenges/insert-a-node-at-the-tail-of-a-linked-list

python linked-list

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

需要更好的数据库设计方法

我为订阅产品设计了一个数据库架构。用户可以选择从某个日期开始订阅一定天数。用户可以在几天内取消订阅,但之后仍保持订阅有效。这意味着如果用户订阅一个月,她可以在 10,15 和 20 天取消订阅,因此只需支付 27 天(30 减 3)。
到目前为止,我已经提出了这个模式。在此处输入图片说明

  • 每个用户都有一个配置文件。
  • 用户可以选择一个计划。
  • 一旦用户选择了一个计划,它就会被记为交易,它还存储有关该计划的开始日期和持续时间的信息。
  • 每笔交易都有付款(稍后重点介绍该部分)

现在,由于用户可以在任何一天取消订阅,我应该如何跟踪不同的用户和他们订阅的日期?

我想到的解决方案是创建一个新表 Plan_Transaction_user,它将跟踪该日期的每个日期和交易 ID。这样,如果用户在特定日期取消订阅,则该交易 ID 将没有该日期的记录。

表将如下所示:

Date       Transaction ID       
1-1-2017   1
1-1-2017   2
1-1-2017   3
1-2-2017   1
1-2-2017   3
Run Code Online (Sandbox Code Playgroud)

由于与 transaction_id 2 关联的用户在第 2 天取消了她的交易记录,因此该表中不存在。

现在,如果我有 5000 个客户群,那么在一年内最好的情况下,我将拥有 5000 * 365 ~ 180 万行。我确信这不是最好的方法。您能否向我建议更好的模式或对现有模式进行一些更有效的更改?以防万一您想知道我将使用 MariaDB (AWS RDS) 作为数据库并使用 Python 2 作为我的语言。

谢谢你,奥哈斯

mysql database-design software-design database-schema

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