我是 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 次),如下所示。我缺少什么?
它是一个在链表末尾添加节点的非常简单的程序。我不知道我在做什么错误。是否与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
我为订阅产品设计了一个数据库架构。用户可以选择从某个日期开始订阅一定天数。用户可以在几天内取消订阅,但之后仍保持订阅有效。这意味着如果用户订阅一个月,她可以在 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 作为我的语言。
谢谢你,奥哈斯