小编aal*_*333的帖子

Django Rest Framework - 通过函数传递Model数据,然后在同一模型的单独字段中发布输出

(Django 2.0,Python 3.6,Django Rest Framework 3.8)

我正在尝试填写calendarydays以下模型中的字段:

模型

class Bookings(models.Model):
    booked_trainer = models.ForeignKey(TrainerProfile, on_delete=models.CASCADE)
    booked_client = models.ForeignKey(ClientProfile, on_delete=models.CASCADE)
    trainer_availability_only = models.ForeignKey(Availability, on_delete=models.CASCADE)
    calendarydays = models.CharField(max_length=300, blank=True, null=True)

    PENDING = 'PENDING'
    CONFIRMED = 'CONFIRMED'
    CANCELED = 'CANCELED'

    STATUS_CHOICES = (
        (PENDING, 'Pending'),
        (CONFIRMED, 'Confirmed'),
        (CANCELED, 'Canceled')
    )


    booked_status = models.CharField(
        max_length = 9,
        choices = STATUS_CHOICES,
        default = 'Pending'
    )

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

现在,我有一个从中获取值trainer_availability_only并将这些值转换为日期时间字符串列表的函数,返回的输出如下所示:

{'calendarydays':['2018-07-23 01:00:00','2018-07-23 02:00:00','2018-07-23 03:00:00','2018-07- 30 01:00:00','2018-07-30 02:00:00','2018-07-30 03:00:00','2018-08-06 01:00:00','2018- 08-06 02:00:00','2018-08-06 03:00:00','2018-08-13 …

python django django-rest-framework

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

在 Django 中使用 JSONField 的默认字典列表

Django 2.0、Django-Rest-Framework 3.8、Python 3.6

\n\n

我正在使用 Postgres 数据库,并尝试将以下内容设置为 JSONField 的默认值:

\n\n
from django.db import models\nfrom django.contrib.postgres.fields import JSONField\n\nclass TrainerProfile(models.Model):\n    """data required to pull up trainer profile"""\n\n    specific_workouts = JSONField(default=[{"specific": "standard session", "price": 100.00, "units": 1, "hours_per_unit": 1}, {"specific": "standard session", "price": 250.00, "units": 3, "hours_per_unit": 1}, {"specific": "standard session", "price": 300.00, "units": 5, "hours_per_unit": 1}])\n\n    def __str__(self):\n        return str(self.specific_workouts)\n
Run Code Online (Sandbox Code Playgroud)\n\n

Django 文档中写道:

\n\n
\n

如果为该字段指定默认值,请确保它\xe2\x80\x99 是可调用的,例如 dict\n (对于空默认值)或返回字典的可调用(例如\n 函数)。错误地使用 default={} 会创建一个可变的默认值,\n 该默认值在 JSONField 的所有实例之间共享。

\n
\n\n

我想提供一个包含字典的列表作为默认值。我可以通过原始数据或 Django …

python django django-rest-framework

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

烧瓶运行与python

我很难通过使用“ python”方法来使我的烧瓶应用程序运行。我使用没有问题

export FLASK_APP=microblog.py
flask run
Run Code Online (Sandbox Code Playgroud)

但尝试使用

python microblog.py
Run Code Online (Sandbox Code Playgroud)

将导致以下错误

ImportError: No module named 'app'
Run Code Online (Sandbox Code Playgroud)

我的microblog.py文件如下所示:

from app import app, db
from app.models import User

@app.shell_context_processor
def make_shell_context():
    return {'db': db, 'User': User}
Run Code Online (Sandbox Code Playgroud)

我的__init__.py文件如下所示:

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

from flask_login import LoginManager


app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

login = LoginManager(app)
login.login_view = 'login'

from app import routes

if __name__ == …
Run Code Online (Sandbox Code Playgroud)

python flask

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

使用 Stripe 和 Django 进行定期付款

我对 Django 还是很陌生,正在尝试通过 Stripe 设置定期付款。我正在使用 Django 2.0 并成功设置了单次充电测试用例。但是,我不熟悉如何创建定期付款,并且我正在从事的项目需要它。

对于单次付款,我有以下几点:

观看次数

stripe.api_key = settings.STRIPE_SECRET_KEY

def checkout(request):
    """Stripe check out"""

    new_tier = models.PaymentTier(
        level = "Tier 3",
        year = 2018
    )

    if request.method == "POST":
        token = request.POST.get("stripeToken")
    try:
        charge = stripe.Charge.create(
            amount = 2000,
            currency = "usd",
            source = token,
            description = "Tier 3 subscription for Elite Fitness"
        )

        new_tier.charge_id = charge.id

    except stripe.error.CardError as ce:
        return False, ce

    else:
        new_tier.save()
        return redirect("thank_you_page")



def payment_form(request):
    """Render stripe payment form template"""

    context …
Run Code Online (Sandbox Code Playgroud)

python django stripe-payments

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

在Django Rest Framework中的ModelViewSet中使用自定义函数

Django 2.0,Python 3.6,Django Rest Framework 3.8

我对Django Rest Framework还是很陌生,并且我试图将自己的观点围绕在视图集中使用函数的逻辑(如果这是包含函数的正确位置)。

基本上,当用户在此特定视图集中向api发布内容时,我想发送一封电子邮件。我尝试使用该send_mail功能,但未成功。我有以下基于类的视图:

class SendInviteView(viewsets.ModelViewSet):
    queryset = models.Message.objects.all()
    serializer_class = serializers.MessageSerializer

    @action(methods=['post'], detail=True)
    def send_the_mail(self, request):
        send_mail(
            'Invitation',
            'Try our app!',
            'exampleemail@gmail.com',
            ['examplerecipient@gmial.com'],
            fail_silently=False,
        )
Run Code Online (Sandbox Code Playgroud)

[模型和序列化器是非常基本的,对于这个问题,我认为不需要,基本上只是一个EmailField()。我最终计划使用该电子邮件字段的输入来替换examplerecipient@gmail.com,但现在我只想了解如何向视图集添加功能]

运行时导致错误 python manage.py check

我已经通过sendgrid设置了电子邮件客户端,并且能够成功地将电子邮件发送给要求通过重置密码的用户rest-auth,但是我不了解在这种情况下如何发送电子邮件。

任何帮助是极大的赞赏。

python django django-rest-framework

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